First cut at also handling Typed Racket.

As written, does not work because main.rkt is `#lang racket` not
`#lang typed/racket`, therefore the `:` used in the generated syntax
is unknown.

Probably I need to make a typed/main.rkt with TR versions of `defn`
and `defn-` (which also gets rid of the ugly names to distinguish
them).

But I'm not yet sure how to refactor the code using D.R.Y. instead of
copy pasta. Nearly all the core/common stuff is currently pattern
variables in `with-syntax`.  I have a temporary mental block how to
share template variables among templates living in various places.
Misc README edits.
Nuke extraneous `add1` expression from an example.