CBIDXT-29 AtomicMutationQueue Implementation

AtomicMutationQueue is a lock-free multi-queue with internal queue per
vbucket for storing mutation references.

This implementation uses Go "atomic" pkg to provide safe concurrent access
for a single reader and writer per vbucket queue without using mutex locks.

Patchset 4:
- Initialized numVbuckets
- Added GetNumVbuckets method
- Refactored dequeue to use DequeueSingleElement

Change-Id: Ia3b633259e86b4d0af4f5e86b1112a5c011f7eec
Reviewed-on: http://review.couchbase.org/36074
Reviewed-by: John Liang <johliang00@gmail.com>
Reviewed-by: Pratap Chakravarthy <prataprc@couchbase.com>
Reviewed-by: Deepkaran Salooja <deepkaran.couchbase@gmail.com>
Tested-by: Deepkaran Salooja <deepkaran.couchbase@gmail.com>