Always return a map from `dependencies`

In Clojure 1.4.0, reduce-kv is not defined on nil.
More error handling, detailed ex-info maps
More tests, including some error conditions
project.clj: add profile to test on Clojure 1.4
README: dependencies, compatibility, more description