Give all replicas of a range the same Range ID

Previously, the range ID was chosen as unique / store for every new range
replica created on a store. This means that there was previously no way
to refer to a Raft consensus group by ID. The only way would have been to
use StartKey->EndKey.

Now, ranges are allocated from a global id allocator in blocks by stores.
When new ranges are created, an ID is taken from the pre-alloc'd block.

Range ID has now been moved out of proto.Replica and moved into RangeDescriptor.
Replica no only specifies NodeID and StoreID, which is enough information to
locate the device where a replica of the range can be found.

RangeID was not needed in RangeMetadata, so was removed from there.
Also, ZoneConfig.Replicas was renamed ZoneConfig.ReplicaAttrs to eliminate
confusion.
should we move those error handling before the lock?