move keyboard logic to actor; dynamically generate cursor/keyboard input

It was hard to separate these out, but the point here were:
- keyboard stuff could be generated on the fly as we want them (like menus), so
  they belong with the ActorComponent, which needs to generate them
- cursors are also now dynamically generated and destroyed.
- now the game actually loops through actions of all the entities on the map