mcreq: Add extended packet structure

This extended packet structure is returned by the mcreq_renew_packet()
function (which has been renamed from mcreq_dup_packet()). It provides
APIs to 'tag' a packet with extra metadata stored under a unique string
key. This will be used by retry queue, and possibly others to store
additional error information therein.

Change-Id: Ibfa32d48865aea4c77591bf47fe88732bc30f8a9
Reviewed-on: http://review.couchbase.org/39753
Reviewed-by: Brett Lawson <brett19@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>