Split mobility state into external files

Hero has some complex state machine goodness that was bloating his
class, so I separated out the classes into their own files. They're all
forward-declared in Hero.hpp.