Major and long overdue refactor of Ship.cs

Added generic state machine class
Switched Ship.cs to use the state pattern, with three states, rather
than the hodgepodge it was before.