[C#] Allow DirectBuffer to be initialised from unmanaged buffer

C# version: Alternative constructor to allow DirectBuffer to window over an unmanaged buffer (rather than pinning a managed byte[] buffer). 

Avoids a memcopy when receiving a callback from an unmanaged API (in our case, Informatica Ultramessaging).