Don't convert static strings (__FILE__ and macro #arg) to std::strings in unittests

Speeds up a test I'm writing by >3x
SERVER-9411 First pass at new Sorter framework

Note that some of this is just scaffolding that will be replaced with
better implementations later. In particular, most of the I/O code will
be replaced.
SERVER-9411 Comment the public API of the new Sorter
SERVER-9411 SortedFileWriter doesn't need SortOptions
SERVER-9411 Make Sorter an interface

Currently there is only one subclass (NoLimitSorter), but 2 more (LimitOneSorter
and TopKSorter) will be added to support limits (SERVER-9443).
SERVER-9443 First part of limit support for new framework

This isn't currently hooked up anywhere. It also doesn't yet
significantly optimize Top-K sorting where the result set doesn't fit
inside of our memory budget.
SERVER-9411 dassert that Sorter's comparator is sane

This should help catch poorly written comparators
SERVER-9411 Move Sorter implementations into sorter namespace.

They are internal, not public.
SERVER-9443 Correctly handle initial state in LimitOneSorter
SERVER-9411 Fluent API for SortOptions
Tests for SERVER-9411 and SERVER-9443

Also minor fixes for bugs with multiple calls to more() uncovered by tests.
SERVER-9411 Optimize sorter file I/O by batching writes to at least 64K.

Reads are also optimized since they use the same batch size as writes.
SERVER-9411 remove stub code to ensure templates compile correctly