Major Update C#

Fairly certain I'm finished with the main of the C# port.