Fix SOAP fault parsing

Currently, when an HTTP 500 is returned, an exception is raised about a missing SOAP header. This is because SOAP faults from EWS don't contain headers. Instead of trying to parse the SOAP message the web existing exception handling logic should be called here.

I also cleaned up the `ServiceRequestBase` related classes a little bit, before the fix could be done.
In fact, the fix is really that we *do* call `processWebException()` now. The `processWebException()` call was unreachable code before, because `ex.getHttpErrorCode() == WebExceptionStatus.ProtocolError.ordinal()` can never be `true`.

The only place `getEwsHttpWebResponse()` is called is in `validateAndEmitRequest()`, and I handled the `HttpErrorException` and call `processWebException()` there. But perhaps it makes more sense to do that in `getEwsHttpWebResponse()` already. If so, please let me know.