Split resolved and non-resolved parsing

This introduces separate sets of emitter / parser functions and macros,
for raw xml and resolved xml:

- parse{-str}-raw .. the original parse, that parses into prefixed keywords
- parse{-str}* .. resolved parse, that can emit QNames or keywords as
    per passed namespace
- parse{-str} macro .. calls parse{-str}* with current namespace
- emit{-str}-raw .. the original emit, that emits a prefix, if present,
    and xmlns attributes as xml namespaces. Ignores URIs, that might be
    set on QName.
- emit{-str} .. Emits prefixes based on the URI on QName or as
    determined from defns clauses.

A new model of representing namespaced xml with keywords is introduced:
defns clauses, that tie in to clojure's namespace model:

- defns macro .. defines an xml prefix in the current clojure ns
- alias-ns macro .. introduce (clj ns) aliases to (possibly not
  previously existing) namespaces. This is used to allow
  e.g. (alias-ns dav webdav.xml)
       ::dav/props ;; => :webdav.xml/props

       (in-ns 'webdav.xml)
       (defns "DAV:")

       (emit {:tag :webdav.xml/props}) ;; => <D:props xmlns:D="DAV:" />

There are some other bugfixes squashed into this commit

- Add direct constructor for element with metadata
- Define print-method and print-dup
- Parse xml names without uri as plain keywords (most attributes)
- remove walk-namespace, as this is not baked yet
Merge upstream

* origin-master:
  Prevent XXE attacks by disabling external entities resolution in the default parser
  Updated latest version
  [maven-release-plugin] prepare for next development iteration
  [maven-release-plugin] prepare release data.xml-0.0.8
  remove unnecessary snapshot repo from pom - this is added by the sonatype super poms in a profile when needed
  Add CONTRIBUTING.md
  Fixed the indentation tests for JDK 1.8
  Remove duplicate test-indent, collapsed defaults and defaults-2 tests into one
  DXML-21: Rename deftests so they all have unique names

Conflicts:
	src/main/clojure/clojure/data/xml.clj
	src/test/clojure/clojure/data/xml/test_emit.clj