Entity refactor

This refactors the components so that the chase and patrol behaviors are pulled out into their own components.

Note that this is disruptive in that the way enemies and rats will be set up -- see the comments on the HorizontalPatrol and ChasePlayer components for details