[core/api]  Re-enable programmatic config with auto appName discovery

  * After commit 58e7c2740da731caa8a8f13da90c13ee3835b52a, appName discovery
    became automatic when such property was not provided in a configuration
    file.  However, that feature also disabled the ability to detect explicit
    (programmatic) configuration.  This commit reenables it.

  * Automatic discovery of the appName value occurs if any of the following is
    true:

      - there is at least (any) one property set (either via
        fenix-framework.properties, fenix-framework-<backendName>.properties
        or -Dfenixframweork.PROPERTY=)

      - the property appName is set and its value is either "" (empty string)
        or "INFER_APP_NAME"

  * As a corollary, backends that do not require extra configuration
    properties (other than appName) and still would like to use the appName
    auto-discovery feature, MUST set appName to either "" or "INFER_APP_NAME".