Light optimization

1. In `features.py`, a slightly better way of computing tag transition
features which results in maybe a 5% speed-up (?)
2. In `ppn.py`, hints for future CPU and memory optimizations not yet
attempted.
3. In `ppn.py`, a few more docstrings