Feature/canvas client methods

Create a client package with auth, session, utility methods, and base methods split into separate modules.  Added tests for each module.
Good point, but I think that can be addressed later as an optional parameter that can be passed into calls.  I'm thinking that having the same retry value for certain http errors across multiple uses within a single application wouldn't be a deterrent for using the library.

The bigger issue I see with MAX_RETRIES is that it's used for two purposes, setting a value in the Session and for repeated calls to the API.  If we were to allow sessions as an optional configuration setting, then it wouldn't be an issue.