RUBY-577: Add support for delegated authentication

This pull request adds support for delegated authentication. It includes:

- Adding the ability for add_user to add/modify roles and userSource
- Adding the support for authenticate to be called with a source parameter
- Allowing logout to recognize and log out auths that had a source
- Updating old tests to support changes to internal data structures
- Adding new tests that mimic what the python driver has: https://github.com/mongodb/mongo-python-driver/blob/master/test/test_auth.py#L229-259
- Updating the documentation to reflect the changes

Jenkins: https://jenkins.10gen.com/view/Ruby/job/ruby-577/27/

It's all pretty clearly laid out but let me know if you have any questions.