Fix ErrorResponse/ResponseStatus parsing for ProtocolBuffers when return type does not have ResponseStatus property or if IReturnVoid.

1. DRY creating WebServiceException between ServiceClientBase and
AsyncServiceClient -> move to WebRequestUtils.
2. Fix check for whether type implements IHasResponseStatus (
"returnDtoType is IHasResponseStatus" is not correct and was always
false).
3. If response type (TResponse) is HttpWebResponse do not try to
deserialize HttpWebResponse from the httpWebResponse object we already
have, rather just return it.
4. Attempt to deserialize the ResponseBody into an ErrorResponse object
using the current Deserializer to properly read ErrorResponse when
content type is not JSV compliant.