Fix a page cache bug when faulting throws

Both the StandardPageCache and the MuninnPageCache had a bug where, if IO on swapping a page in threw an exception, the page faulting procedure did not properly clean up after itself.
This left the page caches in inconsistent states, that would eventually lead to deadlocks.