ol.layer.Vector pass original options to parent

This makes it possible to pass arbitrary property to ol.layer.Vector and use layer.get('property_name') to get the value of properties.
Merge pull request #934 from elemoine/vector-layer

ol.layer.Vector pass original options to parent
Select example and skeleton with event listeners
Adding selection layer and implementing basic click selection
Making the control's button work
Require layers
Adding change event
Simplifying clear/append detection
Adding tests
Making Travis happy
Adding exports
Making JSDoc happy
Work with clones rather than the original features
Adding missing @requires
One selection layer per source layer

This way all styles can be defined on the source layer, by
defining a rule with a select renderIntent. It also will make
addition and removal of layers easier while the select control
is active.
Example update after recent API changes
New ThisIdentifier expression

This allows member expressions to use the 'this' keyword.
Implementing renderIntent handling
Removing option for temporary layer

Instead, adding setter and getter for a private temp_ property,
as suggested by @elemoine.
Adding layer visibility/addition/removal handling

The Select control creates a selection layer for each layer it
is configured with. When a configured layer is removed from the
map, the selection layer will be made invisible. For configured
layers on the map, the 'visible' property of the selection layer
is bound to the configured layer.