MB-7966 KVShard implementation for Multi-readers and writers

This change introduces the concept of the KVShard class which is
used to allow scheduling for the multi-reader/writer feature. The
KVShard is a simply a logical partitioning of the VBucket map that
allows the engine to easily be able to schedule jobs from different
VBuckets to specific reader and writer threads.

Change-Id: I507b63a2f998020334d0d47dbb8fb3870d8312e6