added exception for incompatible stop criteria
added stop criterion interface
added search listener interface
added search exception
added search status enum
updated search listener interface

solution type of search may be more specific than solution type of
listener
implemented general search interface