Manually managed memory for log buffer

Use DataBuffer for storage before sending data to Fluent. Memory in DataBuffer is handled outside the GC, reducing potential collection triggers as data is appended to the internal log buffer. DataBuffer is a copy of Walter Bright's ScopeBuffer changed to use size_t instead of uint giving full access to all addressable memory in the extreme case of needing to log > 2GB of data.