StoreGate: Fix some corner cases in WriteDecorHandle.
If isAvailable() was called on a WriteDecorHandle before a decoration was recorded, then the handle would fail to lock the decoration when it was destroyed. There were also issues if the handle was renounced.
Fixed. Also simplified a bit so that typeless_dataPointer_impl no longer needs to be virtual.
See !73627 and ATLASRECTS-8008.