Port ol.interaction.Select

This PR ports `ol.interaction.Select` from the old `master` branch.

Notes:

* The selected features are stored in an `ol.render.FeaturesOverlay` which both defines their style (with a `styleFunction`) and maintains the set of selected features in an `ol.Collection`.
* To change the set of selected features programmatically, manipulate the `ol.render.FeaturesOverlay`'s `ol.Collection`.
* To listen for features being selected or unselected, listen for events on the `ol.render.FeatureOverlay`'s `ol.Collection`.

I did not port the old tests because the tested functionality is now handled by `ol.Collection`, which is already well tested.

This interaction feels a bit sluggish to me. At the moment I'm not sure why this is. It might be something to do with the `click` event only being fired after a `mouseup`, or maybe something else.