Refactor and tidy up Makefile / dependency generation

* Fix pylint warnings in makemake.py
* Refactor makemake.py, splitting more logic out into separate functions
* Remove some unnecessary extra work in the dependency generation
* Add a small Makefile which generates the package dependencies and build rules when necessary, removing the need to run 'makemake.py' manually.   Rename makemake.py to specdep.py