Cleanup and Ghosts

Added a bunch of code cleanup/re-factoring.
Moved entity availability checks to before the entity is created.
Player now turns into a g-g-g-ghost on death only. (I don't know if the condition checks you had are still needed or not)