Remove unused Ord constraint from Set and Map
Merge pull request #21 from Peaker/master

Remove unused Ord constraint from Map and Set Binary instances
Add Bas van Dijk to contributors as he wrote the original generics code

The generics code originally came from cereal.
Make runGetState more efficient, especially if called many times.

Issue #23. Needs to be done for more functions in this module.
Avoid rebuilding LBS with L.fromChunks.

Fixes #23.
For consistency, also use takeHeadChunk and dropHeadChunk where we can.
O(n) version of pushChunks, when joining unused chunks.
Add decodeOrFail and decodeFileOrFail.

Issue #22. Documentation and tests still missing.
Rewrote decodeFile* to use chunk pushing style.
This code currently uses Data.ByteString.Lazy.Internal.defaultChunkSize
when reading from handles. I'd prefer to be more independent
of bytestring's internals, let's copy the code to this module.
Docs for decodeFile and decodeFileOrFail.

Issue #22.
Add test for encodeFile and decodeFile.

Issue #22.
Implement lookAhead.

Issue #17. Test present, documentation still missing.
This function was removed with the 0.6.* branch, and had quite few users.
The plan was to use <|> instead, but lookAhead was missed since it
offers some functionality that <|> cannot provide without larger restructuring of the application.
lookAhead can be implemented in binary without affecting any other functionality,
so here it is again.

This also makes 0.6.* more backwards compatible with earlier versions,
this saving the developer from #if MIN_VERSION hacks.
Add .cabal-sandbox to .gitignore.
Implement <|> using runAndKeepTrack.
Model test: make sure decoded data is as expected (not only offset).

Previously we tracked only byte positions in the model, and compared
with the decoders' offset (via bytesRead).
Now we give the whole input to the evaluator, and thanks to that we track
offset we can easily also compare that the decoded data is what we expect.
Compile QC tests with -O2.
Implement lookAheadM.

Also with tests.
Cleanup instance Arbitrary of lazy bytestrings.
Model test: provide better shrinking.

The model now has a constructor Actions which holds a list of Action.
It can be used to unpack a LookAhead(M) or Try in order to shrink the program.
Silent warning.
Function haddocks for lookAhead and lookAheadM.

Issue #17.
Update benchmark. Add cereal and attoparsec for comparison.