Added IDisabledTrait & UpgradeManagedTrait

 * IDisabledTrait for identifying (and filtering) disabled traits
 * UpgradeEnabledDisabledTrait provides an abstract base for enabling by upgrade and disabling by upgrade
The `UpgradeManager` trait already tracks the level (via `sources[type].Count`), so this is extra tracking is redundant.  It would be better to add a `level` parameter to `UpgradeAvailable`.