Allows for MessageFactory subscribers to be overridden

I want to inject my own message factory into the client instantiation process, but my version differs very slightly from the default version. The only difference is the HttpError subscriber (I want to handle exceptions differently) - but because they're private properties I can't override atm