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.

![mr-anderson-waiting-for-a-free-page](https://cloud.githubusercontent.com/assets/7993/4215585/f9e436d4-38cf-11e4-80bc-13ccbb50530f.gif)