Finish cleaning up the host32 emulator

I'm fairly happy with this now, the implementation is much more
straightforward than it was previously