Support international characters

There is a problem with Parser.cs and FieldBase.cs - they expect every character in a string to be one byte, which is not necessarily true.
The dependency is based on the field BodyLength, which in FIX should refer to the _number of bytes_ of the message after the BodyLength field.

These changes switches to use a BinaryBuffer instead of String in Parser.cs, and changes FieldBase.cs to correctly calculate the length in bytes instead of characters.