loader: Override doesn't include explicit layers

When the override layer is present, it would append any layers
found as if they were implicit. This change prevents non-implicit
layers from being included in loaderScanForImplicitLayers when
the override layer is active.

Change-Id: I95a7555d68e72f3d801bb27e6cd0792611e4596f
diff --git a/loader/loader.c b/loader/loader.c
index 826518a..7d13739 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -4756,7 +4756,7 @@
                 continue;
             }
 
-            res = loaderAddLayerProperties(inst, instance_layers, json, false, file_str);
+            res = loaderAddLayerProperties(inst, instance_layers, json, true, file_str);
 
             loader_instance_heap_free(inst, file_str);
             cJSON_Delete(json);
@@ -4771,13 +4771,11 @@
     // actually present in the available layer list
     VerifyAllMetaLayers(inst, instance_layers, &override_layer_valid);
 
-    if (override_layer_valid) {
-        loaderRemoveLayersInBlacklist(inst, instance_layers);
-        if (NULL != inst) {
+    if (override_layer_valid || implicit_metalayer_present) {
+        loaderRemoveLayersNotInImplicitMetaLayers(inst, instance_layers);
+        if (override_layer_valid && inst != NULL) {
             inst->override_layer_present = true;
         }
-    } else if (implicit_metalayer_present) {
-        loaderRemoveLayersNotInImplicitMetaLayers(inst, instance_layers);
     }
 
 out: