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
Should the upgrade rules give a warning about `UpgradeMaxAcceptedLevel` since sometimes it needs to be 1 more (ei. 2 instead of 1)?