Adds the ability to whitelist pseudo types.

This is important for making sure they don't appear in places that they
shouldn't.
Adds pseudo typing for literal.
Adds literal_term_t.
Adds LITERAL protobuf.

Literals now correctly evaluate inside of merge and error elsewhere.
Makes merge be recursive.
Makes literal actually work as proposed.
Improve stray literal error message.
Adds literal to python.

Also fixes backend bugs.
Allow key deletion via r.literal.
literal -> LITERAL
Adds literal to the js driver.
fixed compile error in gcc
Adds tests for advanced merge.

Also fixes a few bugs that it revealed in various drivers and the
server.
Make literal work in update.
Adds tests for recursive update.
Adds docs for advanced merge.
Remove some abandoned breakpoints.
Merge branch 'dates' into merge_br

Conflicts:
	drivers/javascript/ast.coffee
	src/rdb_protocol/datum.cc
	src/rdb_protocol/datum.hpp
	src/rdb_protocol/ql2.proto
	src/rdb_protocol/term.hpp
	src/rdb_protocol/terms/time.cc
Merge branch 'dates' into merge_br