Changed what we override in blessings' for handling ctrl+z...

Hopefully to make it a little more generic and maintainable. Also added a bunch
of unit tests, which are quite nasty because of how much blessings interacts
with hard-to-mock entities :-(