major: completely replace macro and parser system!

 - strip out custom parser and just delegate to Datomic/Clojure’s EDN reader
 - new macros for keywords, queries, and rules
 - delete all data types associated with the parser AST and terms
 - remove EntityOps and Ops macros… not going to support these
 - new query object that encapsulates a Clojure datastructure
 - new names for typed query objects

new query macro works as follows:
1. take a string literal and run it through datomic.Util.read
2. if the query is in map form, fine, otherwise transform it from vector form to map form (with minimal validation)
3. compute the input and output arity
4. convert the clojure datastructure into literal code
5. wrap it in a typed query object that encodes the input and output arity

the macros for keywords and rules, do mimimal further validation

note: use of Clojure functions in a macro require some classloader hacks to deal with Clojure weirdness

closes #12 : complier position information is not going to be available in general with the EDN reader
closes #43 : no longer relevant
resolves #45 and resolves #46 : supports any and all EDN / Clojure
implement string interpolation / code splicing into query

As well as string literals as the input to the query macro, allow
support for s"abc $d efg" style string interpolation. The macro will
evaluate the string constant parts at compile time, using the symbol
"!" as a placeholder for the code parts, and then splice the code trees to
parse the code parts of the string interpolation at runtime.

s"[:find ?e :where [?e $attr]]"

becomes equivalent to

{:find [?e]
 :where [[?e datomic.Util.read(attr.toString)]]}

So this becomes a multi-phase macro. The string interpolation is a
macro and takes

s"[:find ?e :where [?e $attr]]"

to

StringContext.apply("[:find ?e :where [?e ", "]]").s(attr)

then the string constants are turned into

"[:find ?e :where [?e ! ]]"

and turned into literal Clojure data structures

{:find [?e]
 :where [[?e !]]}

and finally datomic.Util.read(attr.toString) is substituted in
for the ! symbol
implement a simple Datomic.parseOps using datomic.Util.readAll

simply wrap the Clojure objects up in an anonymous instance of Operation
fixup tests

- delete the no longer relevant tests
- fix tests for the API changes, no Query.pure for example
bump to Datomic 0.8.4260

includes changes to datomic.Util.read
reörganize macro implementation code

 - colocate all implementations
 - use c.abort instead of throwing an exception
improve datalog rules macro

 - add validation
 - support string interpolation
Merge pull request #83 from pellucidanalytics/topic/edn

Replace macro system to fully support EDN