Begin writing YARD documentation

* Install YARD
* Add a `rake documentation` task
* Make `endpoint` and `resource_name` methods private
* Write docs for `Configuration` and `RestfulModel`
I like how thorough you're being about documenting the exceptions, but I'm concerned that in cases like this one (where `raise` isn't called from this method) it would be very easy for the documentation to get out of sync with the implementation.

Does it make sense to use `@raise` when describing methods that explicitly call `raise` or `fail`, and in other cases rely on good exception messages and stack traces to tell the user what's happening?