Adds backend for several array ops.

They are:
    - insert_at
    - splice_at
    - delete_at
    - change_at
Hooks up the new array operations.

All but delete_at seem to be working.
Fix a few bounds checking problems that had me confused.

I believe that all of the new array ops are now working.
Adds array ops to the python driver.
Adds support for new array ops in javascript.
Adds tests for new array operations.

Also fixes a bug in the python driver.
Makes array op tests pass.
Switches how modify works.
Canonicalize returns a size_t.
Change splice interface to not take a vector.
Make DELETE_AT have variadic type signature.
Adds arity tests and fixes some failing tests.
Adds array tests with variables.
Adds tests with bad type signatures.
Adds docs for at ops.
Fix a few mistakes in documentation.
Merge branch 'next' into merge_br

Conflicts:
	drivers/python/rethinkdb/ast.py
Fix protobuf collision.
Add single argument count

Review 569 by @mlucy and @jdoliner
Add indexes_of

Review 580 by @mlucy