Decouple player & trail

Some prototype functions and properties should definitely put in a `Trail` model.
Also the control is now on the trail, but should end up on the player, and the trail should only respond to specific events.

Have a look, and let me know what you think.