If no dirs provided use root as the search dir

- Cleaned up constructor args validating/parsing/default value providing
- Improved test coverage
Search dir example in readme

Along with some general cleanup
Merge pull request #26 from tivac/default-dirs

use root as default search dir if necessary