Add FreeTrace.hs

Following up on the discussion in #9. It compiles but I haven't tested it.
I should mention that the only reason I put the error-handling stuff in there was to be able to define the `MonadError` instance with a single structure. But if you're okay with dropping that requirement, having a more minimal structure (or two) seems like a good idea.