Expr::where() need not alter the current field
Builder mapReduceOptions/out methods should require mapReduce command
Support GeoJSON in Builder::geoNear() and set spherical default

geoNear commands against 2dsphere indexes require the "spherical" option to be true, so we can infer its default based on whether or not the "near" option is GeoJSON (in both Builder and Collection).
Make query type equality checks consistent
Builder::map() should init full query array, default to inline output

This makes map() as functional as mapReduce(), apart from setting the "reduce" option.
Refactor Builder/Expr set() and add tests