Commands Refactor Part 2

We split #196 in two parts. this is the second. (#262 is the first). This builds on all the changes to commands/.
Woah, this changes the output format!! Please do not do that. the output formats are carefully chosen apis. This will already break existing scripts.

Return it to print out one line per:

```
added <hash> <path>
```
(and path should be relative there)