Move AI logic from select/case to subs and break into files

It was too cumbersome to have all the AI for the entities in one file
with select/case statements to handle the different states. I changed it
so that each state is now a sub, so that switching states is a matter of
changing the state pointer to a different sub. This keeps the code for
each state isolated to its own sub, instead of being intermingled with
other variables and code for other states.

I also broke the logic into different files for each entity, so all the
logic/states for the sheep entity (for example) is in its own file.

There are also some other minor updates:

- Set items to "0" for some entities after setting them up in
  map_translate(). This allows me to put a sprite/item in the editor for
  the tagged tile and not have it load in the game.

- Added isEmpty() to Animator class. This will be used as a way to check
  if an animator has been setup yet. A case might setup an animator (if
  empty) and process it in the same sub. That's where this would be
  useful.

- Added _switched_state field to Entity class. This gets set to true
  whenever the state is changed. Then a call to switchedState() will
  return true if the state changed, and then will reset that flag to
  false. This is good if I need to see if a case needs to init anything
  before processing.