add is_upgradable and is_upgradable_on_ext meta-functions, use them to rationalize usage of split/group techniques