Added IDisabledTrait & UpgradeManagedTrait

 * IDisabledTrait for identifying (and filtering) disabled traits
 * UpgradeEnabledDisabledTrait provides an abstract base for enabling by upgrade and disabling by upgrade
I didn't like the way UpgradeManagedTrait handles levels wrt UpgradeAvailable anyways and was thinking about changing UpgradeAvailable and/or AcceptsUpgrade. There is a problem with AcceptsUpgrade and tracking levels - can't tell whether its going up or down. I wanted to replace `bool available` in them anyways. I didn't in order to avoid expending scope.