Support extensions to ol.Feature

OL3 should support custom extensions of `ol.Feature`. I would like to be able to supply a custom extension of `ol.Feature` to any of the formats and have them return instances of that class. I believe this is significantly less necessary for the `ol.interactions` package - which is the only other place in `src` that I see "new ol.Feature(".

Example: Displaying a list of features using a grid library such as SlickGrid or ng-grid in an application compiled using Google Closure. SlickGrid requires each grid item to have an ID field (not a function). In this case you could override `ol.Feature.setId()` and force such a field to exist.

I should have a pull request for this shortly after I finish adding the tests.
This should have an `@api` annotation, so it can be actually used by applications.