More UserValue cleanups

Fixed a nasty and subtle bug in UserValueEcot, that would sometimes fail
to realize that a value already existed, apparently due to excessive
optimization in the compiler.  (A side-effect wasn't happening
reliably.)