Make setNValue allocate objects in temporary string pool, if needed 

I can definitely make VC2 and VB2 large enough to be not-inlined, and I think it will be a better test for having  a mix of in- and outlined strings.

I don't really see the value in having the EE determine if every branch of CASE WHEN can stay inlined, though.  It seems like the optimal solution here is to avoid outlining data at all until the last possible moment---when we have a NValue pointing to inlined storage and we need to put that value in a column whose values are outlined.

In theory we could traverse expression trees, and determine if an inlined value may ever need to be outlined, and outline it proactively, but we can't know for certain at runtime if outlining is required (CASE WHEN is a good example of this).  Seems like a lazy approach is easier and more efficient.