Tutorial 2 - Refactor ship spawning & implement basic input

* Add a macro for implementing deref
* Add a spawner struct that will spawn entities
* Explore more complex trait bounds
* Explore associated constants
* Further explore project structure
* Implement basic motion
* Implement basic input handling for user, via motion