fixes #684 Add support for a user-defined primary key.
make new sharded collections use a primaryKey #740

Added a check for a nonexistent collection during shardCollection, and if
the collection doesn't exist yet, use the primaryKey feature of create to
make a primaryKey that contains the shard key.  This makes it so we can
have a clustering index on the shard key without paying twice for space.

closes #740
refs #684 relax the condition for when we'll decide to not prefetch
because we believe the bounds represented by a FieldRangeVector is small
enough that it's not worth it.
Merge pull request #737 from Tokutek/custompk

Support for a custom primary key