Update the .NET binding

This fixes a bunch of bugs (notably memory leaks), type mismatches (time_t is 64-bit, adjust P/Invoke function prototype to match) and .NET-style exceptions rather than exposing the C-style return values which does away with a lot of boilerplate code for the consumers of the binding library. It also enables creation of a binding library that will support x64 and x86 librrd-4.dlls (though currently the build fails in x64-mode, which is better than it succeeds but do not work which was the original state).