Stop storing bad reponses in cache

Two new things on the API wrapper.

- WithCheckXmlValidity will do a full parse on the response body. Use this on endpoints that are currently unreliable, and the cost of the parse is less than the result of caching a bad response
- WithCache(ICache cache) this is to lift the caching out of HttpClientWrapper (the website replaces HttpClientWrapper with a caching decorator) and only caches responses after they have passed all applicable validation.

What do you think?