Revert 6497

WIP. Still needs:
- [x] Feedback for code
- [x] Feedback for rst docs
- [x] Tests
- [x] Remove CHANGES.txt
- [x] Address possibly incorrect usage/docs of register/define and load/require (See Evan's comments)