Fix state propagation in `Parser`.
Merge `BinaryInput` into `MemoryInput`.

This makes for a somewhat simpler API surface. Previously, it was unclear why
bitstring input couldn't be given to `MemoryInput`.

This requires some changes to the public API in `ExParsec`. With this change,
we can also have sensible initial position info depending on the input.
Add tests for the `Parser´ module.
Make sure `use ExParsec` requires `ExParsec.Monad.Parse`.
Add some tests for the monadic syntax.
Rewrite the input tests to be a bit more concise.
Add some more `MemoryInput` tests.