Added Giving API calls, account creation, and enhanced logging and error handling

I forked this project since I needed to use it in an iOS app I was working on. I noticed that there were a number of things missing since new APIs had been added and it was hard to get good error messages back. I added a number of classes to handle the retrieving and saving of different objects to the API and re-architected the logging and changed many of the methods to pass back errors.

Hopefully this will be useful to people using the library moving forward.