Added the ability for the dispatcher to give callbacks multiple functions.

This will be useful, given how the callbacks are currently structured, and avoid needless
passing around of tuples.
Defined a set of structs to hold common data.

This is accompanied by a unit test, to ensure that the metaclass
magic behind the classes in structs actually works.
Fixed some stylistic errors reported by pylint.
Wrote the icon utilities.

This also required adding the focusing function to the utils module,
but it is not yet implemented.
Fixed the dispatch test.

Due to the change in argument passing, the tests were failing,
but they are now fixed.
Removed the data structure descriptions.

These have been reified as structs.py, and thus the description
file is no longer needed.