RUBY-615 adding license/copyright source headers

As recommended by ASF policies for the Apache 2.0 license, I've added back the source headers to all "non-trivial" source files in the project.

Things I skipped:

* The benchmark suite (I'm going to delete this)
* All trivial/boiler-plate files
* 3rd-party files (Removed in commit from RUBY-618)
RUBY-615 adding required notice file

Adding the required NOTICE file for compliance with our Apache 2.0 license. Since it's not required to include non-bundled dependencies, this file only contains our own copyright information.

With the changes I've made in RUBY-618, the only bundled dependency we have in this project now is with the BSON package from the Java driver. However, since it's also our own and licensed under Apache 2.0 we aren't required to list it here.
RUBY-615 removing unused benchmark suite

I think we can safely remove these at this point. AFAIK we're not really using them anymore and these performance tests are covered in a separate project now that looks for performance regressions on all drivers (mongo-performance).

This isn't directly related to RUBY-615. I'm including it here because I'm deleting these files rather than adding the license and copyright source headers.

In additional to cleanup and license compliance, getting rid of this unused benchmarking suite will allow us to filter out the large pdf file here and reduce the size of our repo quite a bit.
RUBY-618 remove dependency on 3rd-party utf8 encoding helpers

There was some concern of license compatibility with the 3rd-party encoding helpers we currently have in the bson c-extension. This commit removes the 3rd-party code and replaces it with an alternate implementation that came from the new mongo-c-driver.

This commit is a pre-requisite to RUBY-615 which is an effort to correct/improve our Apache 2.0 license compliance.
RUBY-608 fixing uri parser so that it handles authentication correctly

* fixes uri parser to pass auth values to mongoclient
* fixes auth uri tests
* behavior correction to auth parsing so that it matches the uri spec
* removal of irrelevant test after behavior correction
RUBY-533: Split bulk inserts into many messages
RUBY-590: make tests run faster
RUBY-590: remove rbx from .travis.yml
RUBY-590: remove non-essential builds from .travis.yml
RUBY-621: remove lock_with_hack (unused)
RUBY-621: remove each_with_object
RUBY-577: add_user support for roles and userSource
RUBY-577: support for delegated authentication and logout
RUBY-577: update old tests for delegated auth
RUBY-577: add new tests for delegated auth
RUBY-577: temporarily disable testing on travis

The patch for enabling auth on Travis has not been pushed to the travis
workers yet:

https://github.com/travis-ci/travis-cookbooks/pull/180

Once it has been rolled out we can remove the skipping of this test.
minor: editing yard template
minor: create fixtures folder and moving existing fixtures

between datafiles, keyfiles and the certs I'm adding for the ssl tests we've begun to accumulate a number of test fixtures. as such, I've done a few things in this commit to try and help organize them.

* create new tests/fixtures folder
* adding new certs for ssl tests
* moving data file fixutes and updating references to them
* moving keyfile fixtures and updating references to them
RUBY-565 adding support for ssl cert validation

* Added new SSL options to MongoClient, MongoReplicaSetClient and MongoShardedClient.
* Added SSL certificate check to SSLSocket.
* Updated pool tests to support these changes.

The MongoDB auth spec explicity does not include any of these new SSL values (mostly because they're file paths) so there were no changes required the URI parser. SSL cert validation options must be set directly on the client.
RUBY-565 testy goodness for ssl cert validation

Adding a few tests to cover the new SSL features. Sadly, there's too much certificate, /etc/hosts and MongoDB server mucking around for these tests to actually be run in bulk or automated in CI.

These tests must be run manually, and in some cases (spefifically for negative test cases) a single test at a time.

I've grouped the tests by their configuration and server options required to make them successful and provided notes for each test on how to set it up locall on your own machine.