Add new actions:
- 'compare' action to compare generated files (except those
generated by Graphviz) against the latest commit, and
- 'restore' action to restore generated files from the latest commit.
This is a squash rebase of these commits:
- p 9ad3e13 Reduce code duplication by moving common code into a generic function
- s d4feae6 Add action to restore generated files from git repository
- s 64f6507 Add action to compare generated files against git repository
- s 099c202 Simplify code
- Use `pathlib.Path` instead of `os.path`
- Fix order of files while building
- Consolidate code for building demos, examples and tutorial
- Change argument from `tutorials` to `tutorial` to remain consistent
- Add some indentation in console output for better readability
build_examples supports cleaning examples and intelligently will detect new examples.
SUGGESTION: When merging into dev, require
```
build_examples.py clean
```
and then only build when merging into master branch
There are hard copies of the graphviz and pyyaml dependencies included
in the repo. Remove these.
Sort out installation and dependency handling by writing a functional
setup.py script. Rename top level documentation. Refactor wireviz.py
slightly to allow it to run as an installed script.
# Conflicts:
# src/batch.py
# src/wireviz/batch.py
# src/wireviz/build_examples.py