Added custom feature classes to formats #2487

Added getter and setter for a custom feature class and a getFeature()
method to return a new instance of the class. Also added a static
function that retrieves the new feature function off of the "context"
in the object stack that is common among formats which use static
functions for parsing.

formats now support custom feature classes #2487

Replaced "new ol.Feature(" with "this.getFeature" where applicable.
For static functions, a 'getFeature' attribute was added to the
first object in the objectStack and then
ol.format.FeatureFormat.getFeature(objectStack, opt_arg) is called
instead of "new ol.Feature"

tests for custom feature classes #2487

Added a simple test for custom feature classes to each format
which changed (provided it already had a test suite).

Fixed formatting issue #2487

Fixed ci build #2487
Changed feature class to a create feature function #2487

Also moved the XML convenience function to XMLFeature.