First pass at macro implementation
Generalize; implement sink and source
Formatting
Relax bounce to FnOnce
Put macros in separate crate for abstraction

We probably want to expand the macro into a private module so that the enum
constructors are not public. Since we provide fold, working with the functor
should be enough I think.
Move Trampoline to tailrec.rs
Move Sink and Source to stream.rs
Move crate 'free_macros' to 'free'
Merge pull request #6 from darinmorrison/macros

Macro-based free monads