Selections: Change Selection class so it saves and restores ranges

Previous implementation of the Selection class saved selection
objects and selection objects change as the selection changes.
This implementation saves the ranges of selection objects which 
do not change.

Change-Id: Ib2ff110f072b59f860991280c25699b86a045697
Merge "Selections: Change Selection class so it saves and restores ranges"