RethinkDB Implementation for OAuth Models

The pull requests includes a sample implementation of RethinkDB.  The code has been ran against the created tests and all pass.

In order to run the tests against the RethinkDB implementation follow these steps:

* Modify package.json to include rethinkdb as a dependency: ``` "rethinkdb": "*"```
* Modify the first line of ```test/server/app.js``` to ```var TYPE = 'rethinkdb';```
* Run ```npm install```
* Run ```npm test```

The first few runs will fail.  This is because the current test app setup does not allow the data to initialize the DB before the test cases begin to execute.  I'll point this out in a comment in the PR.  After a few runs the tests will pass because all of the test data will have loaded.
This function is used when a refresh token is sent to the server.  My understanding was that it was not necessary to retrieve the same token when a refresh token was provided back to the server but instead to issue a new token.  This way multiple tokens of various scope could be generated for a given user.  If my assumptions are correct then the test i commented on above wouldn't be valid because you would expect a new token.  Hopefully I explained that well enough.

thoughts?