[CJ/EC/RH][76395676] Rough first cut of app config

Also wraps some unit tests around the existing env behavior.
[CJ/EC/RH][76395676] Add some no-config-file tests
[EC][76395676] support invariant app-config

- i.e. an API key that is the same across all environments
[CJ/EC][76395676] Get rid of unnecessary `env`

This helps us clear the way to using "env" for the infra stuff.
[CJ/EC][76395676] add defenv, remove defconfig

Use defenv to define infra-owned env vars and IDG-owned app config.

(defenv
  :app {sentry-url :sentry-dsn}
  :env {oracle-url "DATASTORES_ORACLE_WEBICON_HOSTNAME"})
[CJ/EC][76395676] fix .env test fixtures

  FOO="BAR"
       ^ Vals must be strings in .env files
[CJ/EC][76395676] allow keypaths for app-config

- adds tests. much refactor. so code.
[CJ][76395676] Use the env map for app config

This way the app config file location can be specified by either
environment variables *or* the env files.
[CJ/EC][76395676] add envs, default to config.edn

app config now requires three keys:
{:clj-config/environments #{:dev :ci :qa :production}
 :clj-config/default-key  :default
 :clj-config/app-config   {:sentry-dsn {:dev nil
                                        [:ci :qa] "ci/qa sentry dsn"...}}
[CJ/EC][76395676] stronger pred for child isa? env

Discovered when tests were passing which should have failed.
Passing silently, if you will.

The former condition was ≈ (or (env? k) (coll? k))
which really wasn't specific enough.

What we really want is in the code.
(if k is a collection, it must contain an env or default)

Thanks for listening.
Merge pull request #3 from primedia/app-config

[76395676] Extend clj-config to support an idg-owned config file