Changed CalculateString to reduce garbage

Re-use same StringBuilder instance for whole message which reduces the
amount of garbage generated.
Make a "new" ToString method on IField: toStringFieldValue, which is used when the value after the equals sign to be sent over fix is required. (This is to separate debug usages, that should use ToString, and protocol serialization, that might not keep the current signature.
Changed name and signature for "string IField.toStringField()" -> "void IField.AppendField(StringBuilder sb)".
Change name of IField.toStringFieldValue -> IField.ValueToString.
Add IField.Empty property.
Fix failed test.
Get rid of multiple tree traversals to serialize message.  We now make a single pass and append all the data from fields, and then compute the checksum and length fields separately from the data in the buffer to send.
Change a lot of strings to byte[].
Merge branch 'add-tcp-buffer-sizes' into improve-parsing
Some improvements made during performance tuning.
Merge remote-tracking branch 'origin/require-ipv4' into improve-parsing
Merged e3a1cfb (circular buffer)
Fix circular buffer problem.
Fix more circular buffer problems.

Conflicts:
	QuickFIXn/Parser.cs
Yet another fix for circular buffer implementation.

Conflicts:
	QuickFIXn/Parser.cs
Fix broken test cases.
Add parameter to make cloning the input group optional in FieldMap.AddGroup.
Fix problem with previous change.  Make a second method called AddGroupNoClone instead.
Merge branch 'improve-parsing'

Conflicts:
	QuickFIXn/Message/FieldMap.cs
	QuickFIXn/Message/Group.cs
	QuickFIXn/Message/Message.cs
	QuickFIXn/Parser.cs
	QuickFIXn/SocketInitiatorThread.cs
	UnitTests/ParserTest.cs