MB-11059: Support datatype during offline upgrade

- When a 3.0 server reads from a pre-3.0 couchstore
database, we need to identify the value to set the
correct datatype. Warmup will handle this.

- In the loadKVPairs and loadData phase, if the
metadata buffer's length is found to be 16B, we will
check for the JSONness of the value to set the correct
datatype for the particular item in memory.

- In a BGFetch case, if the metadata buffer length of
the item is found to be 16B, we identify the data for
key, before setting its datatype.

- Provide a second callback function to couchstore's
compaction API to edit the docinfo of the document
only if its metadata buffer is of length 16B.

Change-Id: I1149b937d495d5dd1f0d344f701565ba96fe8225
Reviewed-on: http://review.couchbase.org/37352
Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com>
Tested-by: abhinav dangeti <abhinav@couchbase.com>