Add class structure of decorator pattern

Add abstract Module class.
Add abstract Upgrade class to act as a decorator.
Add list of upgraded tokens to ModuleToken class.
Change tests appropriately to new structure.