[storagetracker] Fix DeleteObject return value for PartialDeletion

The deleteItem function had wrong logic for when to return a
PartialDeletion response code.

Also, the unit test for some unexplained reason expected there
to be 1 item left after deleting all items. I don't know how
that ever worked. The best explanation I can think of is that
the root directory shouldn't be deleted because that would leave
m_root a dangling pointer. I added code to prevent that, which also
makes the test pass.