improved exception handling
fixed possible NPE: getResponseBodyAsString could return null
throw ApiResultException when the response is empty to revalidate the session

After using the same instance of XMLApiClient for a while, we often saw some ApiException in the logs, because the response had no content.
We believe that the session was expired or otherwise invalid, but the XMLApiClient did not recover from this state. This should now be fixed, because
in case of an empty content the session will now be restored and the command repeated.
improved logging - especially of http response
rename isSessionInvalidOrExpired() -> isSessionLost()
Adding some more elaborative toStrings to ApiResultException and
XmlApiErrorResult.
Adding some preliminary unit testing around ApiClient.
Merge pull request #12 from dstevens-silverpop/master

Adding some more friendly toStrings and preliminary unit testing.
Merge pull request #11 from scoyo/noResponseFix

Added exception/result to handle empty response from API, fix NPE
snapshot
Merge remote-tracking branch 'silverpop/master'

Conflicts:
	.gitignore
	src/main/java/com/silverpop/api/client/ApiClient.java