[BREAKING CHANGE] The Great Selection Rewrite of 2014
Creates ve.dm.Selection, and abstract base class representing
a selection of some type over a DM document, which can contain
0+ ranges. To begin with create LinearSelection which contains
a single range (and so replace ve.Range in most places) and
NullSelection which replaces range === null.
For many actions (annotation actions, copy/paste, special key
handling) our current logic only makes sense for linear selections
so make it clear those are requried at the moment.
Future selection types e.g. table selections, will require us
to add in new logic where we test for selection type.
Change-Id: I2b6be9f1eff940e62048cc55356f61ceb416a32f