Refactored ResponseHandler and BeanstreamResponse

- In order to leave BeanstreamApiException as a checked exception:

1. Changed return type of responseHandler to BeanstreamResponse
2. Overloaded the use cases of BeanstreamResponse - in success cases, and cases where the response payload is not json-ify-able, a new field "responseBody" is set with the value of the response payload, instead of attempting to json-ify it (which will not work in these cases obviously); in error cases, the Beanstream json response will be parsed into the usual code, category, message, reference fields (httpStatus code is set in all cases)
3. processTransaction() still catches the IOExceptions thrown from the handler code, but can throw a checked BeanstreamApiException (as it has always done) without having to wrap it and sub-optimally route it to an exception-handling method that seems to have been designed for IOExceptions, not business rules exceptions

Please enter the commit message for your changes. Lines starting