Cleared out TODOs from previous commit and added new tests for RPC methods with various arg types (refs ERRAI-533)

NB: the tests are not passing yet; they just demonstrate the problem!
code cleanup of codegen and additional unit tests
fix to marshalling problem with exposed abstract or interface types from an ExposedTypesProvider