Feature/create client

So, I'm with you on adding an accept json header - while I doubt Canvas would revert to XML, it sounds like a relatively easy and inexpensive thing to do as it applies across all request types.

For PUT and POST requests, Canvas can accept a text/json content-type, but it also supports standard HTML form encoding.  The requests library will add the form encoding header by default for puts and posts.  I guess we need to decide if we want to instead send the data as json, in which case we'd have to both include the text/json content-type header and format the payload as json.  I'm not sure if one way is preferable over the other.