Handle non-oauth2 errors similar to RestTemplate

Update OAuth2ErrorHander to handle non-oauth2 errors in a similar
same way that RestTemplate does.  Now, OAuth2ErrorHandler only looks
at 4XX status codes and if it is not able to determine a reasonable
oauth2 error, it delegates to a different/default ErrorHandler.
Fix code that wasn't using buffered response.

- Some code wasn't using the correct buffered response.
- Added test case to verify that custom ErrorHandlers can
consume the response body if needed.
change test cases to match updated error handling
Revert Spring 4 change to RestTemplate

The API changed slightly in the underlying library
which is a nightmare. I think the current code now
works with Spring 4 snapshots.