shard_id_t: change NO_SHARD to sort before 0 (min instead of max)

The min ghobject has shard NO_SHARD, and is the default constructed value.
That initial value is assumed in uncounted ways across the code base when
users do

  ghobject_t foo;
  foo.this = that;

such that changing it is dangerous.  It is safer to change the shard_id_t
sort order such that NO_SHARD is signed instead of unsigned.  The value
doesn't actually change (still 0xff), but the sorting does.  Note that
only a single comparison triggers a signed/unsigned warning from this
change, and it assumes that the shard is not NO_SHARD (ec pool) and we
case it to preserve the old behavior anyway.

In PGBackend we change the minimum value for the objects_list_partial()
method to start with NO_SHARD.

Signed-off-by: Sage Weil <sage@redhat.com>
os/FileStore: force temp objects into _TEMP temp collection

We've removed the temp collection concept from the ObjectStore interface,
but the FileStore HashIndex will mix objects with different pools together
by hash id, which breaks the ordering.

Compensate by forcing objects with 'temp' pool ids (anything < -1) into
a parallel temp collection.  Hide this detail isnide FileStore, below the
ObjectStore interface and above the HashIndex backend.

Signed-off-by: Sage Weil <sage@redhat.com>
os/KeyValueStore: change naming scheme to work with new ghobject_t sorting

Note that this is definitely not backward compatible!

Signed-off-by: Sage Weil <sage@redhat.com>
ceph_test_objectstore: be better about collections

Use meta collection or pg collections.  Try to make ghobject's pools match
the pg collections.

Signed-off-by: Sage Weil <sage@redhat.com>
ceph_test_objectstore: adjust tests to new sorting regime

A few things here:

 - try to use pg-based collections throughout
 - try to match object names to collection pool and shard

Signed-off-by: Sage Weil <sage@redhat.com>