FLEX-34119 Adding two unit tests for HierarchicalCollectionViewCursor (HCVC). HierarchicalCollectionViewCursor_Basics_Test is meant to ensure that HCVC works as expected in non-corner cases (it's definitely incomplete, and could use more tests. I created it mainly to test the few functions I needed when working with FLEX-34119), while HierarchicalCollectionViewCursor_FLEX_34119_Test reproduces the FLEX-34119 bug (and, incidentally, also uncovered FLEX-34424). FYI The latter test lasts just under 3 minutes on my machine.
FLEX-34119
CAUSE:
HierarchicalCollectionViewCursor.collectionChangeHandler dealt with CollectionEventKind.ADD and CollectionEventKind.REMOVE events in a defective way: when the event happened before the currently-selected node, but in a different collection from the selected node, it assumed that it could use the currentChildBookmark to correct the position of the bookmark in that collection. However, currentChildBookmark can only be used on the collection it was created in, which is the collection of the currently-selected node and its siblings. This made ListCollectionView.getBookmarkIndex throw the 'Bookmark no longer valid' error.

SOLUTION:
In the case detailed above instead of changing the currentChildBookmark we need to adjust the bookmark associated with the collection that the changing (i.e. added or removed) node is in.

NOTES:
-Another problem in HierarchicalCollectionViewCursor.collectionChangeHandler was that currentChildBookmark was (attempted to be) updated with the corrected position of the parent of the changing node's sibling collection. However, currentChildBookmark represents the position of the currently-selected item, and should only be updated when the selected item's siblings collection changes, not when other collections change. Instead, we need to update the parentBookmarkStack collection, which contains the positions of the selected node's parents' positions in their collections.
-After these changes HierarchicalCollectionViewCursor_FLEX_34119_Test doesn't show any more 'Bookmark no longer valid' errors. (But it still fails due to FLEX-34424).
FLEX-34119 Adding some explanations on the main unit test.