Allow prefix function arrow type

Also fix a regression that made arrow type
parsing more permissive than desired due to
missing colon^s
Add ->* type constructor for optional arguments
Abstract out function that checks ->* style types
Lift out `partition-kws` function into util module
Print ->* style types with ->* constructor

This recognizes the type for a function like
`regexp-match?` and will print it concisely.
Use syntax classes to parse ->* type constructors
Do not allow parentheses omission for prefix ->

Also fix multiple -> detection, which was broken
Apply All's rules for parentheses omission for :
Improve error messages from : annotation form

Emit errors in terms of the original user-supplied syntax,
not the helper macro syntax
Adjust printing of -> and ->*

Use prefix printing in all cases, and add indentation
rules for pretty printing
Document the new prefix function type constructors
Fix TR reference typo
remove missing require
remove unnecessary file
Reorganize documentation for -> form in TR

Put examples next to relevant prose, add more examples,
and add more cross-references.
add missing redex-examples dependencies
racket/draw: fix serializaiton of bitmap drawing in `record-dc%`

Closes PR 14349
move delim-cont tests into a separate file
Add diagrams from Vincent's PADL paper to TR docs
Use prefix -> in the TR Guide examples

Also some minor fixes like using the more common
case-> form rather than case-lambda.