Split option code away from SelectionCollection.
Move code required for selection option implementation from
SelectionCollection to a separate SelectionOptionManager class.
Simplified the selection request handling code in the process, but
otherwise this commit mainly moves code around without changing any
functionality (except for small changes required to use the new class
in code using the selections).
This makes the responsibilities in the code clearer, since
SelectionCollection is now completely independent of any options
implementation. It also simplifies the involved classes, since
the options handling (which will become even more involved with #656)
no longer complicates the core of the selection module.
Related to #656.
Change-Id: Iac24a2f9392c8cc2421edef3f212ddb462e864b3
16 files changed: