Completed the port to C#

I have finished incomplete port of client code for C#.

It's mainly direct translation of java code with usage of currently available C# parts. The exception to it is the ContextMenu module, where I've merged the code for all platforms, because it was functionally identical for all platforms.

I've tried to maintain a consistency in style with existing C# code.

I've tested this port on both Windows 8.1 64-bit and Windows 7 64-bit.