demo.py is now fully using the Puz() class rather than puzfns;

modified the Puz() class and the demo.py script to feed Puz() either a puzid or a puztuple as constructor arguments.