Save results to file - initial implementation
Completed implementation of saving results to file.

Some refactoring to

- allow a search command to return a complex object, stating the outcome
of the search as well as holding the results
- move tests around so test names make more sense