allowed sharding in presence of unique index if it contains _id #968

We generally can't shard a collection with a unique index because we can't
ensure uniqueness across shards.  However, in many places, MongoDB assumes
_ids are always unique, and normally allows any index that starts with _id
to assume it's unique and therefore not block sharding.  However, this
actually extends to all indexes that *contain* _id as long as it isn't
hashed (which couldn't be unique anyway), *in particular* any PK.

This will make it possible to create a collection with a user-defined PK
and then shard on a different index.

fixes #968