refactor code base to introduce new feature / functionality 

New features
===========
* separate data validation from implementation
* offline validation of neighbordb
* more consistency and clearer error messages
* new repository structure for working with the file system
* new config setting to format debug messages