Abstract Classes for Search
Operator – operator encodings may take on
many different forms
State – “search state” or node really.  The
encoding of the “state” of the agent is
internal and unspecified
Searcher – could have added on thread
support for anytime algorithm, but kept it
simple for now