Repository Contents API

This incorporates and supersedes #434 

I took a slightly different approach. In the interest of keeping close to the API, there's only one method called `GetContents` that maps to the ["Get contents" API](https://developer.github.com/v3/repos/contents/#get-contents). I was able to accomplish this by changing the serializer a bit. When it's trying to deserialize a JSON object into an `IEnumerable<T>` but the JSON text is clearly a `T` and not an array, I simply wrap the json text with square brackets turning it into an array of one item and then deserialize it.

The other bit I had to do is when creating content, the text of the content needs to be base64 encoded. Also, when requesting content, the data is base64 encoded. So I changed the serializer to handle this transparently by simply applying the `SerializeAsBase64` attribute. So the consumer of the client doesn't have to worry about this.
Since the property below now is called `Content` instead of `Contents`, maybe these should be changed as well? :smile: