Abstracted cors configuration

CORS configuration is now provided by an instance of
Cors\Options\ProviderInterface.

A default options provider implements the existing
semantical configuration.

Additional providers can be registered using the
nelmio_cors.options_provider service tag, with
an optional priority attribute (default is 0, and
the semantical configuration provider has a priority of -1.