Cleanup imports
Remove ErrorMessage and Description aliases.

`ErrorMessage` and `Description` are no longer available as
aliases. Simply use `String` instead.
Parser is now a newtype rather than a data type.
Fix a bug in sat1 where EOF would have to be detected by the given parser.

sat1 satisfies exactly a single given parser. To satisfy exactly one,
a check and fail on EOF should be made before trying to satisfy the
parser.
Minor cleanup
Add failList.

failList can help with returning a set of errors which offloads the
task of formatting error messages to toplevel functions rather than to
the parser.
Use failList in pSat1 and failEnd.
Add pos for saving parser position.

The `pos` function can be used to save the current position of the
parser in case a later failure happens due to a token that starts in
the current position. You generally would want to show the beginning
of the toekn rather than its end.
Add `failListPos` which is `failList` with a `pos` argument
Update README with Changelog