Accept a style option and provide setStyle and getStyle methods

We can consistently accept a `style` option for `ol.layer.Vector`, `ol.source.ImageVector`, `ol.FeatureOverlay`, `ol.Feature`, and `ol.interaction.Draw`.  These will convert the provided value into a style function for use internally.

To modify a style, `ol.layer.Vector`, `ol.FeatureOverlay`, and `ol.Feature` get a `setStyle` method.  The `getStyle` method returns what is passed to `setStyle` or provided as a `style` option.

This fixes #1661 and #1671.  See those tickets for additional discussion.