Combine prop_{opt,req}_roundtrip

[ci skip]
Test more out of range tags
Make helper function to test properties on all primitive wire types
Implement shrinking for Arbitrary instances

[ci skip]
Implement the rest of the packed primitives
Start adding reference tests
Get packed sequences working for Google reference test 4
Rename EmbeddedMessage -> Message
Add reference tests for zig-zag encoding
Rename PackedWitness to PackedField
Working on docs

[ci skip]
Add field and enum lenses
Bump up base version constraint to GHC 7.6+
Merge remote-tracking branch 'origin/master' into type-nats

Conflicts:
	src/Data/ProtocolBuffers/Types.hs