Initial import of the AST and the encoder half of codecs
Dynamic: make apply(String) a thing
Rename JsonEncodable.scala -> JsonEncode.scala
Standard decoders
Set[T] encode/decode
Move conversions around, and make old JsonCodecs available from new En/Decoders
No longer need the "CBHolder" hack
More decode error types

I'm still debating on whether to add a catchall "Other" error type or if
I can enumerate all possible JValue decode errors.
Rename some errors
Pattern-matching
dynamic: rename "staticOpt" and "static" to "?" and "!"
Add ability to convert "Multiple" errors to lists
Rework multiple-errors one more time

I think I'm finally happy with it.
Readers
Remove some legacy json-impl stuff that crept in
Fix scaladoc
More number work

* Specialize JNumber for Java's BigInteger and BigDecimal
* Use the Java BD for hashcode/equals (because there are cases where
   Scala's will throw)
* Check that a number can actually be put in a BigDecimal when
   deserializing
Allow buffering when constructing a JsonReader from a Reader
Remove unnecessary double->float conversion
Add JPath and JsonZipper