Refactor: Generalize controller from keyboard controller
Add `assert` script
Separate keyboard `obj_controller` objects in a dedicated group
Refactor: Move join and leave behavior up into `obj_controller`