Add the start of a protocol buffers decoding implementation.
Integrate the protocol buffer decoder into the specification infrasturcture.

Also move the inline xml to its own xml file.
Fix infinite recursion when asking for the range of a recusive type.
Test shifting ranges without limits.
Fix solving with an unknown range.

Fixes encoding protocol buffers integers.
Improve support and testing for string and int32 types.
Don't fail the encoding when solving fails; fail completely.
Check checking types for wire types.
Move the protocol buffers test to the regression framework.

This makes it easier to debug, and has more thorough testing (eg: will test C decoders).
Fix exception when we find an unknown file.
Support encoding of sint32.

Encoding is currently broken, as it doesn't attempt to 'smartly' choose
the source of the encoded data (it attempts to invert the 'mod 2', which
it rightly complains it can't use).
Add support for all varint types.
Add support for the 64 bit fixed types.
Add fixed 32bit types.
Add support for decoding optional entries.
Add somewhat shonky support for repeated elements.
Add support for packed repeated elements.
Text is in UTF-8 encoding.
Use the last message as the default decoder.

This makes it easier to write regression tests containing embedded messages.
Ignore protocol buffer comments.