1. types now keep track of their subtypes, enabling smarters checks
after reloading: "has anything in my hierarchy been reloaded?"
instead of "has anything at all been reloaded?"
2. Building on that, caches related to info built during reflective
calls like 'getDeclaredMethods()' and 'getMethods()' is cleared
from types (and subtypes) during reload. The caches will
subsequently be rebuilt/reused on the next request for that
info.
3. New guards in ivicheck/etc: 'have things in my
hierarchy been reloaded?'