Add sanity checks to NValue

These changes add sanity checks to the NValue class when built in memcheck mode.  NValue stores a cached copy of varchar/varbinary data length in its own storage.  This cached value can get out of sync with the length-preceding value referenced by a StringRef (not inlined) or the storage for a record (for inlined data).  The sanity checking here makes sure the two values stay in sync, and is performed in the copy constructor and when serializing to row data.  My proposed changes for ENG-6666 triggered a latent issue in this area.

In Jenkins, this change causes a handful of memcheck tests to fail, which indicates some latent issues.  Probably they should be addressed before these changes are merged to master?