Refactored some stuff and added ability to make moves, etc.

Hey Vince,

Nice working with you the other night. I spent a little time this afternoon cleaning things up and adding some new functionality. I think the next step is to get the solver to start trying moves, figuring out which is best based on the manhattan distance and then moving forward.