BSON grow module

RUBY-676 New write operation method for insert, update, remove
unfinish! uses @str.size instead of unrestored @cursor
b_end! fix plus clarity
finish! fix and simplify finish_one!
RUBY-661 adding server_op_timeout to find_one
minor: fixing test harness for replica set initialization

It was _completely_ unreadable.
It's still terrible, but slightly more readable and a little less nonsensical.
minor: fixing race condition in replica set test harness
RUBY-661 Use new maxTimeAlwaysTimeOut option instead of JS clauses
RUBY-661 Update cursor tests to use new maxTimeAlwaysTimeOut option
Make tests with fail point option more flexible

Only check for version in the test helper
RUBY-661 Allow cursor to accept arbitrary opts

This allows commands to accept arbitrary opts and pass them through to cursor
RUBY-661 Allow db #command to receive arbitrary opts
minor: making cmd_opts dup and merge clearer
commands need to be OrderedHash in 1.8.7
RUBY-682 allow command helpers to accept arbitrary opts
RUBY-682 fix passing opts through with group command
minor: RUBY-682 syntax updates after code review
minor: aggregate cursor can now be an arbitrary command opt
minor: hash keys should be of a consistent type
Merge pull request #264 from gjmurakami-10gen/1.x-stable-bson-grow

BSON grow module included in ByteBuffer