Interface type mangling

Plus a bunch of refactoring to allow the mangler to see the method set cache.