[VOL-2950][VOL-3110][AETHER-457] Fix a bug in component readiness check

The existing code checks for onos-core-net only due to the bug

In addition, this patch introduces a new REST API to check health of given app.
Active in app status only indicates that the app has been activated.
This new API will look deeper and make sure all OSGi features, bundles and components of given app are all ready.

Change-Id: If91326ba9cffdbe25821eeaaa092ec9d2ab952ea
(cherry picked from commit 5bdaf106e4b30208d6acee6ad5bf1d58c9057d66)
diff --git a/core/api/src/main/java/org/onosproject/cluster/ComponentsMonitorService.java b/core/api/src/main/java/org/onosproject/cluster/ComponentsMonitorService.java
new file mode 100644
index 0000000..50aad17
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/cluster/ComponentsMonitorService.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2020-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.cluster;
+
+import java.util.List;
+
+/**
+ * Monitors the status of OSGi components.
+ */
+public interface ComponentsMonitorService {
+    /**
+     * Checks if all given OSGi features are ready.
+     *
+     * @param features list of feature name in string
+     * @return true if all features are ready, false otherwise.
+     */
+    boolean isFullyStarted(List<String> features);
+}