Port instaparse to Clojurescript

Hi @Engelberg,

As discussed in https://github.com/Engelberg/instaparse/issues/37, this is a port of instaparse to clojurescript.

The tests are ported to cljx, and the base code is still maintained as separate files, however once this is merged and you are happy with the approach I can start porting the rest of the code to cljx where it makes sense. Let me know if you have any concerns with the code - I'm happy to make any improvements you deem necessary.

There are a few missing span related tests in clojurescript, as I cannot use instaparse.viz which depends on rhizome. Performance in advanced mode is approximately 1/10th of that of the clojure version. This could possibly be improved in the future.

Unfortunately there is currently no way to remove the warnings below until cljx releases a fix. Exclusions to the plugin have no effect. 

WARNING!!! version ranges found for:
[com.keminglabs/cljx "0.4.0"] -> [org.clojars.trptcolin/sjacket "0.1.0.6"] -> [org.clojure/clojure "[1.3.0,)"]
Consider using [com.keminglabs/cljx "0.4.0" :exclusions [org.clojure/clojure]].
[com.keminglabs/cljx "0.4.0"] -> [org.clojars.trptcolin/sjacket "0.1.0.6"] -> [net.cgrand/regex "1.1.0"] -> [org.clojure/clojure "[1.2.0,)"]
Consider using [com.keminglabs/cljx "0.4.0" :exclusions [org.clojure/clojure]].
[com.keminglabs/cljx "0.4.0"] -> [org.clojars.trptcolin/sjacket "0.1.0.6"] -> [net.cgrand/parsley "0.9.1"] -> [org.clojure/clojure "[1.2.0,)"]
Consider using [com.keminglabs/cljx "0.4.0" :exclusions [org.clojure/clojure]].
[com.keminglabs/cljx "0.4.0"] -> [org.clojars.trptcolin/sjacket "0.1.0.6"] -> [net.cgrand/parsley "0.9.1"] -> [net.cgrand/regex "1.1.0"] -> [org.clojure/clojure "[1.2.0,)"]
Consider using [com.keminglabs/cljx "0.4.0" :exclusions [org.clojure/clojure]].

Thanks,

Lucas