Add Search class to allow generic access to a search type

Also add a Factory for Simple and Advanced Search.