Initial commit

 * Category protocols are off to a start
 * Implemented Maybe: Just and nil types
 * >>= and deduce (haskell do-notation)
 * Functor implementations for Collections, fn, and java.lang.Object

TODO
 * Finish implementing sequences
 * Add Reader, Writer, State(?)
 * Monoid protocol
 * List is not a Functor
 * Implement Object as a monad: implicit Maybe
 * safe-let, which uses Just pure on all bindings
 * with-deducer, specifying pure
Removed redundant function: bind

  * Added a little Writer monad that concats Strings

TODO
  * Refactor writer to use a Monoid
  * Ad-hoc deducers: (deduce-with {:fmap ... :join ...} ...)