Investigate Ply usage

I've been having a bit of a think about parser implementation:
 - I thought you might want to add these as a branch (the commit rewrites Part21.py and may miss out some of the original code features) or discuss the idea.  I've put some initial thoughts in the file DESIGN.txt

FYI:  Ply uses BSD licence and is standalone, I've had significant success using it for other things - speed could be improved by optimising the lexer (I can think of a few things that would massively increase the speed, but I haven't bothered yet).