Changes the inner working to reflect a proper VM

Removes many misunderstood concepts and replaces them with real runtime
concepts like method tables, etc. Also moves all projects back to .NET
4.0 CP in order to be more compatible and because newer features are not
needed.