[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
Merge "[BREAKING CHANGE] The Great Selection Rewrite of 2014"