Loader overhaul
- always use Fingerprint to identify Linkables instead of modtimes
- Automatically reload stale linkables
- Also always use purgeObj instead of unloadObj, for correctness at the cost of memory
- Add unloadModules to allow API clients to unload modules
- Record consituent hashes for bytecode libraries, so that we can skip relinking without consulting modtimes
- Teach the external interpreter about
purgeObjvia thepurgeObjmessage - Fix a leak with static pointers in GHCi by correctly removing entries of stale modules
- Introduce
-funload-strategyflag so that users can decide whether to purge or unload- Twiddle with the defaults so we can go back to unloading objects on linux, and purging elsewhere where it is not well supported
- Various other refactorings