Fix tests for ModuleToken, hide upgrade/downgrade

Check if pointer to attribute is not null.
Make upgrade and downgrade methods protected.
Remove those methods from Module and ModuleToken classes,
leave them only in Upgrade and its derivates.
Add specific upgraders structure

AddAttributeUpgrader
ChangeAttributeUpgrader
Changed class name Upgrade -> Upgrader

Add method addAttribute() to BoardToken class