Refactor

Cleaned-up code to be more Pythonic. I kept the naming conventions though.

Among my changes:
- Changed the comments at the beginning of sections to docstrings.
- Changed the classes to be new-style classes.
- Used Python's `property` decorator for a more concise declaration of setters and getters.
- Used dunder notation for private attributes.

Also, I noticed that the tests are buggy. Fixed them so:
- Created an `elapsed` attribute (refactored from existing code---I did not introduce anything new).
- Noticed that toggling the visibility of fire does not work for test 3. Somehow, my refactoring seems to have made it work.

I'd have tried to make test 4 work as well (it was complaining about a function `makeTransformsPermanent` which is apparently missing) but I'm not very sure what `makeTransformsPermanent` is supposed to do.