add a bunch of options

1. Option to output a diff instead of all the new output
2. No write and verbose modes, to see what it would do without changing the saved state
3. show_blanks mode, to output something non-blank if the new output is blank