Add FreeTrace.hs

Following up on the discussion in #9. It compiles but I haven't tested it.
Hmm, good question. I don't have a good suggestion just now. One possibility would be to define free `Trace` without error-handling along with another free monad just for error handling and then composing their interpreters. This is pretty easy to do with free monads I think (although I haven't tried specifically with operational). That way you'd have "the smallest trace thing" along with "the smallest trace thing with error-handling".

It's also worth mentioning that there is already something called `Trace` but it's a comonad. I think it's `CoWriter`. Maybe I should figure out how it works…