GetFeatureInfo improvements

This pull request contains GetFeatureInfo improvements:

It introduces a new concept called FeatureInfoContext to separate the stateless GetFeatureInfo parameters from the stateful stuff (e.g. XMLWriter, OutputStream etc.). This resolves a rather remarkable bug that resulted in an xml header being written at the bottom of xslt output. It also creates a convenient abstraction to add new functionality.

In order to be able to fully customize the GetFeatureInfo it is now possible to point to a custom FeatureInfoSerializer implementation in the WMS configuration. 

To glue the GetFeatureInfo request to complementary html generating software, a sendRedirect method is made available to the FeatureInfoSerialize to simply redirect the client to another url.