Remove `Encoding` and `Decoding` type-classes.
Try to support multiple CQL versions.

Add support for most of CQL3 and apply extensive type-level versioning.
Remove V2 directory.
Use exact versions in Codec.
Tweak version bounds.
Give up on type-level versioning.

It proved to be not flexible enough causing significant code
duplication. This commit removes type-level versioning completely and
uses an explicit version value to distinguish relevant code paths
dynamically.
Use `Data.IP` and fix `Register` request.
Fix byte order of `PortNumber` encoding/decoding.
Merge branch 'v3' into develop
Add some documentation.
Revert accidental commit of `Tuple.hs`.
Add more documentation.
Add more documentation and tweak exports.
Only export encode*/decode* from internal module.
Export `getOpCode`.
Fix `typeof` in tests.
Release as version 3.0.0