Add support for encoding/decoding untyped messages
Rename putField to putWireTag
Add encodeMessage to match decodeMessage
Add Enum and Bounded instances for Enumeration
Specializing decode to Get, while not necessary, helps codegen by inlining most Generics gunk away
Export a couple internal types for haddock
Add encodeLengthPrefixedMessage
Export Tag/Field from Internal
Also restrict GDecode to Get
Removing some (probably?) useless instances from EmbeddedMessage, adding Applicative and Monad
Don't defer toEnum/fromEnum calls when handling Enums
Some haddock docs are better than none?
Put decodeWire back in the Get monad for it's fail function.
Merge remote-tracking branch 'origin/master' into type-nats

Conflicts:
	src/Data/ProtocolBuffers/Types.hs