Added more paranoid get_skvp which notices invalidation during it's own calculation effort.
Unified the external handling to use the pm:get_external_if_set.