Support instantiation of generic arguments

Fix #285.
Add a few trailer spaces to ensure correct indentation after generating
interfaces.
Handle more complex type parameters
Handle tuple types
Merge pull request #383 from dungpa/generic-types

Support instantiation of generic arguments