Added IDisabledTrait & UpgradeManagedTrait

 * IDisabledTrait for identifying (and filtering) disabled traits
 * UpgradeEnabledDisabledTrait provides an abstract base for enabling by upgrade and disabling by upgrade
I think it would be better to keep this as `AcceptsUpgrade`, as the primary question this is asking is "can we apply this upgrade" -- the level is a secondary (but still important) detail.