Reinit. Audio Engine for MegaDrone on restart. (#523)

* Audio Engine needs to be reinitialized on app start, using pointer instead of object

* shared Mixer refactored to use raw pointers instead of shared pointers. This refactor impacted MegaDrone and RhythmGame.

This prevents ambiguous ownership of audio components, leaving the owner of the Mixer as the sole owner of the inputs to the Mixer.
This allows for objects with the Mixer as a member along with its inputs to control their duration automatically, in aggregate.
This fixes crashes on destruction of objects composing the Mixer and various inputs. (E.g. Fixes #521).

* Refactoring use of unique ptr in RhythmGame and const ptr in MegaDrone

* Documenting mixer input ownership

* Removing const pointer since it requires a messy ternary
6 files changed