[ONOS-3203] End-to-end demo of Fault Management via SNMP.

This adds SNMP device-discovery, and a Fault Management app which makes alarms available to users via REST/GUI/CLI interfaces.
There is still code cleanup that could be done, but aim of this commit is an end-to-end proof of concept.

To demonstrate :

1) /opt/onos/bin/onos-service
onos> app activate org.onosproject.snmp
onos> app activate org.onosproject.faultmanagement

2) SNMP devices are seeded via config file. The default seed file contains connection details for devices (SNMP agents) available via internet  e.g. demo.snmplabs.com
cp /opt/onos/apache-karaf-3.0.3/etc/samples/org.onosproject.provider.snmp.device.impl.SnmpDeviceProvider.cfg   /opt/onos/apache-karaf-3.0.3/etc/

3) ONOS will poll these SNMP devices and store their alarms.

4) You can now manipulate the alarms via REST  e.g. http://<onos>:8181/onos/v1/fm/alarms , via CLI  via various "alarm-*” commands or in UI with an Alarms Overlay.

More info at https://wiki.onosproject.org/display/ONOS/Fault+Management

15/Dec/15: Updated regarding review comments from Thomas Vachuska.
17/Dec/15: Updated coreService.registerApplication(name) as per https://gerrit.onosproject.org/#/c/6878/

Change-Id: I886f8511f178dc4600ab96e5ff10cc90329cabec
diff --git a/apps/faultmanagement/fmweb/src/test/java/org/onosproject/faultmanagement/web/AlarmJsonMatcher.java b/apps/faultmanagement/fmweb/src/test/java/org/onosproject/faultmanagement/web/AlarmJsonMatcher.java
index 9a295c8..d32383c 100644
--- a/apps/faultmanagement/fmweb/src/test/java/org/onosproject/faultmanagement/web/AlarmJsonMatcher.java
+++ b/apps/faultmanagement/fmweb/src/test/java/org/onosproject/faultmanagement/web/AlarmJsonMatcher.java
@@ -34,48 +34,48 @@
 
     @Override
     public boolean matchesSafely(JsonNode jsonAlarm, Description description) {
-        final String jsonAlarmId = jsonAlarm.get("id").asText();
-        final String alarmId = Long.toString(alarm.id().fingerprint());
+        String jsonAlarmId = jsonAlarm.get("id").asText();
+        String alarmId = Long.toString(alarm.id().fingerprint());
         if (!jsonAlarmId.equals(alarmId)) {
             description.appendText("alarm id was " + jsonAlarmId);
             return false;
         }
 
-        final String jsonDeviceId = jsonAlarm.get("deviceId").asText();
-        final String alarmDeviceId = alarm.deviceId().toString();
+        String jsonDeviceId = jsonAlarm.get("deviceId").asText();
+        String alarmDeviceId = alarm.deviceId().toString();
         if (!jsonDeviceId.equals(alarmDeviceId)) {
             description.appendText("DeviceId was " + jsonDeviceId);
             return false;
         }
 
 
-        final String jsonDescription = jsonAlarm.get("description").asText();
-        final String alarmDesc = alarm.description();
+        String jsonDescription = jsonAlarm.get("description").asText();
+        String alarmDesc = alarm.description();
         if (!jsonDescription.equals(alarmDesc)) {
             description.appendText("description was " + jsonDescription);
             return false;
         }
 
-        final long jsonTimeRaised = jsonAlarm.get("timeRaised").asLong();
-        final long timeRaised = alarm.timeRaised();
+        long jsonTimeRaised = jsonAlarm.get("timeRaised").asLong();
+        long timeRaised = alarm.timeRaised();
         if (timeRaised != jsonTimeRaised) {
             description.appendText("timeRaised was " + jsonTimeRaised);
             return false;
         }
 
 
-        final long jsonTimeUpdated = jsonAlarm.get("timeUpdated").asLong();
-        final long timeUpdated = alarm.timeUpdated();
+        long jsonTimeUpdated = jsonAlarm.get("timeUpdated").asLong();
+        long timeUpdated = alarm.timeUpdated();
         if (timeUpdated != jsonTimeUpdated) {
             description.appendText("timeUpdated was " + jsonTimeUpdated);
             return false;
         }
 
-        final JsonNode jsonTimeClearedNode = jsonAlarm.get("timeCleared");
+        JsonNode jsonTimeClearedNode = jsonAlarm.get("timeCleared");
 
         if (alarm.timeCleared() != null) {
-            final Long jsonTimeCleared = jsonTimeClearedNode.longValue();
-            final Long timeCleared = alarm.timeCleared();
+            Long jsonTimeCleared = jsonTimeClearedNode.longValue();
+            Long timeCleared = alarm.timeCleared();
 
             if (!timeCleared.equals(jsonTimeCleared)) {
                 description.appendText("Time Cleared was " + jsonTimeCleared);
@@ -89,18 +89,18 @@
             }
         }
 
-        final String jsonSeverity = jsonAlarm.get("severity").asText();
-        final String severity = alarm.severity().toString();
+        String jsonSeverity = jsonAlarm.get("severity").asText();
+        String severity = alarm.severity().toString();
         if (!severity.equals(jsonSeverity)) {
             description.appendText("severity was " + jsonSeverity);
             return false;
         }
 
-        final JsonNode jsonAlarmNode = jsonAlarm.get("source");
+        JsonNode jsonAlarmNode = jsonAlarm.get("source");
 
         if (alarm.source() != null) {
-            final String jsonSource = jsonAlarmNode.textValue();
-            final String source = alarm.source().toString();
+            String jsonSource = jsonAlarmNode.textValue();
+            String source = alarm.source().toString();
 
             if (!source.equals(jsonSource)) {
                 description.appendText("source was " + jsonSource);