58 add methods to types

- Added basic method implementation to types.
- Defined methods for variable types
- Allowed multiple types for upper bounded types
https://github.com/kfgodel/diamond/issues/58