Jrogers add config

Your existing code uses ‘apiKey’ as the query parameter carrying the API key. Natural name. However, we have existing APIs which use a different key. We can not change the key name in our published APIs. So we would like to change your code to make it possible to configure the key.

I created a new RequestConfiguration which defaults to the original configuration but which can be changed as needed. I passed that down to the encoder and decoder so they use the configured headers and query parameters. 

We only care about the query parameter but it seemed nice to make it possible to configure everything.

Does this seem like a reasonable approach?
Let's move this declaration to below the port to preserve the "natural ordering" of the fields relative to the constructor parameters.