I've enabled almost all gcc warnings and fixed the code to give 0 warnings and enabled -Werror so warnings are now errors.
Some warnings may seem annoyingly pedantic but they are our friends. I found about a dozen real bugs during this exercise. Now that it's clean it'll be easy to keep it that way as we go. Cheers, Alan.
