Be defensive - FluentApi should not accept null httpclient or cache

 FluentApi should not accept null httpclient or cache, as these will just cause exceptions to be thrown later.
This provides a better error message.
This is a minor thing but would be useful in our tests today.