Resolved #11: Experience points, messaging

- Added InteractiveComponent + tests
- Adde BattleSystem to encapsulate fighting logic
- Input/battle systems return messages; send to display.
- Clean up toString for some components for debugging
- Action<T> returns a string message now.
- Monsters can get hurt by the player
- Added linear experience, level-up.