Add FreeTrace.hs

Following up on the discussion in #9. It compiles but I haven't tested it.
Do you have any thoughts on perhaps a less general name than `Trace` here? Since I would expect the "Free Trace monad (transformer)" to be something like the smallest possible implementation of `MonadTrace`, but this also has error-handling semantics. I couldn't think of anything, so I called my thing `TraceT`, but I think it's not optimal.

If you can't think of anything, I'm fine deferring the name-change to a different time.