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
The original idea for `AcceptsUpgrade` was for things like crates to be able to know if the upgrade won't do anything, and modify their selection shares.  This extension will return true even for cloak-crated units, breaking that.

This previous AcceptsUpgrade definition doesn't translate very well to the new leveled setup, which is why I suggested / asked to remove this completely.