Develop

Feature set tied to JIRA task TLT-423:

Create a custom exception hierarchy for exceptions that occur in the SDK. A CanvasAPIError maps to HTTPErrors that might occur on the Canvas side. These errors will contain the status code, json, and error message (string representation of the json). Instead of catching HTTPErrors and re-raising them, CanvasAPIErrors will be raised instead. Added some new tests. Minor version bump. Minor cleanup of retry logic.