Add state space search related interfaces.
Refactor interfaces so heuristic values are stored in objects.
Add lightweight method for detecting duplicate search nodes.
Add Solution implementation.
Add A* Solver. Slightly tweak state space search generic parameters.