Added ability to load properties from various sources

Properties can be loaded from a map, a java.util.Properties object or anything resolveable clojure.java.io/reader.