Fix default SOAP HTTP client

Summary: The root of the problem is properly dealing with 4xx responses.
If exceptions are enabled, we were just throwing out the actual
response and replace it with a generic error body.

PHP5's SOAP client is slightly more clever and looks at the
response content type and/or file magic to see if it looks
xmlish and passes through the body in that case.

Closes #2316

Reviewed By: @paulbiss

Differential Revision: D1682450

Signature: t1:1682450:1416001950:18293dc6819a4430735a4224bb18d18932bd98bf