use weak ptr for soundsources, plugins context in controller_base

This reduces the amount of ownership controller base has, for
things only needed in play_controller anyways.
remove an unused function from controller_base
move "ticks" out of controller_base to play_controller