Use `Moonshine` instead of `Snap` or `IO`. ...

We don't want to expose a wide mix of monads.. to the extent possible,
all of the function interfaces should expose `Moonshine` instead of
some other monad that just ends up getting wrapped in a moonshine.

We already expose the functions `liftIO` and `liftSnap` to help the
user make use of other monads if they want.
Merge pull request #1 from taphu/monads

Use `Moonshine` instead of `Snap` or `IO`. ...