Add error handling

Raises custom errors when Basecamp requests fail with HTTPUnauthorized or InvalidRequestError.
Also updated to ruby version 1.9.3
which of the changes requires 1.9.3?