Rewrite the underlying C++ implementation

This provides a more maintainable and performant layer for Couchnode to
interface with V8. It also provides well structured classes to allow for
better handling and/or rescheduling of commands.

Much of the work here was previously done in javascript itself, with our
own arguments being positional, but such code was difficult to maintain
and extend.

TBD are docs for the new internal API

Change-Id: If60c6ee86bae5ca05be8370336ef45935ce2b00b
Reviewed-on: http://review.couchbase.org/28593
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Brett Lawson <brett19@gmail.com>
Reviewed-by: Mark Nunberg <mnunberg@haskalah.org>