add DI for write/reads with memory store for tests

- add markdown marked up title for chapters
- use thor for mapping commands and arguments
- ignore generated pkg file
- wrap accessing the File with a FileStore implementation
- use in memory store for the io object in test suite