Safe Haskell annotations

Marked top-level modules as `Trustworthy` with a comment explaining why they are not currently Safe. `Trustworthy` implies that the module exposes a safe interface (so, even though under the hood attoparsec uses, e.g. `Data.ByteString.Unsafe`, the API doesn't allow the user to do unsafe things) and that importing the module would not allow the user to break package invarients. If one of the modules I marked doesn't satisfy this, we should remove the `Trustworthy` mark.