Refactored pre/post register to their own functions
Add error message on non string/xexpr/port
Fixed footnotes and rankings

- Use the new system for pre/post for both
- Footnotes correctly generate xexprs rather than undefined sexps