Refactor redi_lib

Split out `redi_lib.py` into separate files based on functionality. Most of which was just using PyCharm to cut and paste while updating references.

This also includes my moving of throttling code out of generate_output() and into its own file `throttle.py`.