Adding support for partial classes

There was a problem when you decorated a partial class with `[TypeScriptInterface]`. The type context (a dictionary keyed on the class fullname) already contained information for the fullname when the second part of the partial class was considered.

This has now been fixed so that the same `[TypeScriptInterface]` definition is used for all partial generation of the class. The attribute still has `AllowMultiple=false`, so you can only mark one of the partial classes, but it doesnt matter which one. A typescript interface is generated for each partial class. This works out neatly since typescript interfaces are additive.