Major refactoring of Entity class
- Removed shady getter/setter code
- Updated code accordingly everywhere
- Added `add` method to add components after construction
Added on-move setter for battle component.
Also added player's pre-/on-move event calls.
Patch up tests from the last few commits.