ShieldedDict - fixed two bugs.

One was in trimming, it still tested the Value for null instead of using Empty. Fixing
this then revealed a bug in ContainsKey(). When called out of transaction, it did not
check Empty, thus sometimes giving a false positive response.