NCBC-648: Forcing JsonSerialization on non-nullable ValueTypes fails

Programmatically detect value types and wrap them with Nullable<> for
JSON deserialization.

Change-Id: I73bede1e2911ecf5c6f0889bb32e24b6163498af
Reviewed-on: http://review.couchbase.org/42196
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>