Fixing bugs for search using unavailable state as input and other minor changes

I've caught these bugs while trying to implement this code in another project and trying to use an unavailable state as input for the search.

Fixing following bugs:

Bug 01: Priority list is not removing the key that maps a sub list when it is made empty in a Replace call;
Bug 02: frontierMap wasn't being used at all, in any momment was it being populated with new frontier nodes nor was it cleaned from already checked nodes;

Other changes:

01: Redundant exploredSet.Add(child) after Enqueuing a state (probably it was supposed to be frontierMap.Add(child, searchNode)
02: Removing if (frontier.IsEmpty) return null and using while (!frontier.IsEmpty), just because :)