Add a more sane version of puddle_of_mudd.py
Remove duplication using dicts
Use an iterator object in puddle_of_mudd.py
Add some test cases to puddle_of_mudd.py