Task 0.5 complete. Added UML generation

UML generation is accomplished via `make uml`. It uses `pyreverse`, which is included in `pylint` and depends on graphviz (both have been added to .requirements.txt), to generate the diagrams. To facilitate editing the diagram, we convert the `classes_Zol.dot` file that `pyreverse` produces into a `classes_Zol.graphml` file using a script called [`dottoxml.py`] (http://dl9obn.darc.de/programming/python/dottoxml/), which is located in the new `tool` directory. The resulting graphml file can be edited in a program called [`yEd`](http://www.yworks.com/en/products_yed_about.html), which has cross-platform support and works quite well.

By default, the `make uml` rule outputs a .dot file, which is automatically converted to a .graphml file. This can be overridden by setting the `IMG_TYPE` variable when calling `make uml`. For example, if you wanted to save the diagrams as PNG files then you would run

* `make IMG_TYPE=png uml` or `make uml IMG_TYPE=png`

You can view a list of the image formats that graphviz supports by running `dot -Txxx`, and you can set `IMG_TYPE` to any of those values. However, only dot files will be converted to graphml files.

Some things to note when opening the graphml file in `yEd` for the first time:
* The classes will be centered and overlapping. Select them and choose  `Layout -> Hierarchical -> OK` to reorganize them.
* Resize the classes to view their attributes and functions by clicking on a class and then dragging a corner or side.
* Edit a class' name by right-clicking on it and choosing `Edit Label`
* Edit a class' attributes and functions by right-clicking on it and choosing `Properties -> UML`.