[csharp] initial check of (WIP) port

This includes all the Java code up to (and including) May 14th 2014