Remove unnecessary wrapper class, refactor queue stuff
Clean up final pass through characters
Use collections.Counter, rename in_edge_count_dict
Don't copy for no reason
Don't unnecessarily subclass PriorityQueue