Added IDisabledTrait & UpgradableTrait with upgrade levels support

 * IDisabledTrait for identifying (and filtering) disabled traits
 * UpgradeEnabledDisabledTrait provides an abstract base for enabling by upgrade and disabling by upgrade
This could do with an `if (oldLevel == newLevel)\n\treturn;` check.