initial groundwork for lobby interface

This adds a couple of pieces I need for the lobby script.

- Texture replacement in a Model by texture name
- HFActionEvent and HFBackEvent (these are meta events we define that can be fired via various input devices)
why not use glm::vec2 for this? for consistency?