Make load_from_file a little more robust

Ignore loading if no file exists, use read().splitlines() instead of
readlines() to get rid of trailing newlines.

Better exception message for failing to set the groups
Handle the groups sub command
Add documentation for the 'groups clear' command
Be consistent about mutliple arg names

Instead of saying [files [files ...]] say [file [file ...]]
Allow path filtering on Configuration.files

The path_filters list can be used to specify what files, or what subset
of files should be returned. This allows us to say something like 'all
files in the 'bash' folder' would corelate to a 'bash/' filter. Or we
could say, 'exactly the file bash/bashrc'.
Allow path filters: install_tree + diff_installed
Setup the diff command
Support options when executing diffs with git-diff
Support git-diff options with the diff command
Handle the install