Refactor run_diff() - extract prep_content()

In method FileDiffCommand.run_diff(), its input parameter pairs
(a,from_file) and (b,to_file) were treated exactly the same,
to prepare content for making diffs.
This common preparation was extracted into function prep_content()
Create FileDiffCommand.read_file() wrapper

Done in preparation for further changes
Fix behaviour when filename is selected

When name of some file (with path) was selected
`run_diff()` tried to open it for reading and then compare its content.
This did not seam as expected behaviour (it made it impossible to compare filenames)
Also it failed when file was not accessible or when directory was selected
use common - and fixed - indent code
break this out to a shared method
better varnames and use common code
move 'options' to 'run_diff' method