Introduce RegisterTemplateMapping on DefaultExpressionConverterFactory

RegisterTemplateMapping takes a lot of the work out of specifying how
to convert expression trees into ReQL terms.  It allows the specification
of an expression-tree template, and then the matching term constructor
to use to create that term.

RegisterTemplateMapping makes a lot of assumptions about the template and
the term constructor matching up right now, but theoretically the same
API can be made more sophisticated as needed.