Introduce IExpressionConverterFactory for extensibility

Very coarse extensibility of the library's capabilities to convert LINQ
expression trees into RethinkDB terms.  However, this first step will
also allow for the storage of state and configuration on an implementation
of IExpressionConverterFactory, which will be necessary for more
fine-grained extensibility to be added without the use of global static
state for registration of it.
WIP on moving conversions out of BaseExpression
Merge IExpressionConverterFactory changes w/ updated queries and tests
LINQ Count() without predicate
DateTime & DateTimeOffset expression conversion
Cleanup commented out code
Fix .Append(); recursiveMap supports MemberInit expressions
IQueryConverter; combo of interfaces needed for IQuery -> Term

Introduce IQueryConverter, a combination of IDatumConverterFactory
and IExpressionConverterFactory interfaces.  Although these two concepts
can still be independent components, they're now composed into a
single interface that represents how to convert an IQuery into an Term.
Remove obsolete RecursiveMapMemberInit
Configurable binary & unary expression conversion
Configurable member access mappings (eg. .Count)
Use TryGetMemberAccessMapping on parameters before IObjectDatumConverter
Add Reset() method to remove default self-configured conversions
Update release notes
Allow custom return types where hard-coded types were used

Affects Avg, Sum, Zip, InnerJoin, OuterJoin, Group, Ungroup, Now
Merge pull request #183 from mfenniak/issue_159_expressionConverterFactory

Replaceable expression tree -> term conversion w/ IExpressionConverterFactory