[cage] Revamp GH #957 pull request

Throw unknown key type exceptions in default case
Remove some compiler warnings (tested even with clang++)
Added even the strcmp case exception even if it makes not much sense.
Harmonize "Wrong type of value from annotation" exception messages.
Most work done by Paul Cochrane

In Makefile moved touch up to align the gnu replaceble testutils
so that I can delete the superfluous slow $(PERL) -MExtUtils::Command -e
variants manually more easily.