Update bidi for cljx support

* Move all Ring related functionality to the bidi.ring namespace
* Use cemerick.url encoding/decoding over java.net.Uri
* Drop dependency on `ring.util.codec` and add FormEncodeable protocol
  using cemerick/url for cljs support (used for path-with-query-for)
* Extend protocols for Clojurescript types
* Add clojurescript.test and make bidi_test cljx

Tests pass for clj and fail for cljs on regex-related stuff.
All tests pass
Use .source property of js/RegExp instead of ugly hack
Use type ^string for path in match-pattern method for cljs
Add author
Documentation for Resources, ResourcesMaybe and Files
Add boolean patterns to BNF grammar
Update formatting of multi-line ex-info messages