Fix marshalling of empty byte[]/Buffer

Empty arrays can't be pinned:

```cpp
cli::array<byte>^ buffer = (cli::array<byte>^)netdata;
pin_ptr<unsigned char> pinnedBuffer = &buffer[0]; // throw IndexOutOfRangeException
```

```cpp
cli::array<byte>^ netbuffer = gcnew cli::array<byte>((int)node::Buffer::Length(jsbuffer));
pin_ptr<byte> pinnedNetbuffer = &netbuffer[0]; // throw IndexOutOfRangeException
```