Allow styles to override feature geometries

With this change, application developers are able to define styles that
render a different geometry than the feature geometry. This can e.g. be
used to render an interior point of a polygon instead of the polygon, or
to render symbols like arrows along lines.
@tschaub, is 90b4104f8a3222c030ff7d37c3b7f8b1b6dde862 what you had in mind?