UML: Decouple OptionLists from TitleState

In order to better organize responsibilities and make each subclass of
OptionList testable, it is imperative that OptionList makes no direct
references to TitleState itself.

Now, TitleState will determine when to change OptionLists based on
is_offscreen(), as well as when to change Game States based on
next_state.