Support for field default values

Closes #20
Added a contributor list
Peg Ruby version
Update to latest rethinkdb library (v1.10.0.1)
Initial implementation of handling Regexp in query
Additional test cases for Regex :where
Update README with Regex example
Refactored where() regexp

Closes #22
Fixes failing persistence spec with DocumentNotSaved

It would appear that the rethinkdb gem now raises
RethinkDB::RqlRuntimeError when one attempts to act on a document
that has been deleted.

Explicitly catching this error and re-raising
NoBrainer::Error::DocumentNotSaved returns us to expected behavior.

Closes #23
Refactored smells out of no_brainer/database.rb

Smells reported by reek:

Before:

 1: NoBrainer::Database has no descriptive comment
    (IrresponsibleModule)
20: NoBrainer::Database#purge! contains iterators nested 2 deep
    (NestedIterators)
24: NoBrainer::Database#purge! has the variable name 'e'
    (UncommunicativeVariableName)

After:

 1: NoBrainer::Database has no descriptive comment
    (IrresponsibleModule)

Notes:

Extracted self.truncate_table! utility function and made variables
more communicative.
Refactored smells out of no_brainer/connection.rb

Smells reported by reek:

Before:

 1: NoBrainer::Connection has no descriptive comment
    (IrresponsibleModule)
32: NoBrainer::Connection#parse_uri has approx 6 statements
    (TooManyStatements)

After:

 1: NoBrainer::Connection has no descriptive comment
    (IrresponsibleModule)

Notes:

Extracted out a private method to set the connection settings based on
a parsed URI.
Update to latest rethinkdb library (v1.11.0.1)

Closes #27
Add failing uniqueness validation spec
Stop uniqueness validations failing on persisted documents
Add support for :scope to UniquenessValidator
Uniqueness validations are polymorphic happy

Closes #26
Allow attributes to be accessed via [], a la Mongoid
Dynamic attributes support
Update README with dynamic attributes
Refactoring the DynamicAttributes feature

Closes #28