Split Orientation out into it's own singleton class.
Use `listenTo` instead of `on` so it gets unbound when the board is destroyed