OF-2085: Pubsub - do not skip cache flushes when no items are changed
Requiring a pubsub item modification to go forward with a cache-to-database flush delays or prevents other changes (eg: creation of empty new node) to be persisted. Instead, any cached node action should cause a flush to proceed.
OF-2084: Pubsub - empty strings are valid node IDs
When re-constructing a pubsub node hierarchy, do not discard empty strings. They can be used to reference other nodes. By default, empty strings are used to identify the root node.
OF-2085: Pubsub - bring flush implementation in line with convention
This reworks the fix for OF-2085, by re-using the same code pattern used elsewhere: first flush nodes, then check if items need to be flushed.