* Add `instantiate/optimize` to the static contracts API
(new function in `instantiate.rkt`)
* Add optional kwd arg `#:recursive-kinds` to sc optimizer
* SC optimizer uses recursive kinds to tell if a `name/sc` or `recursive-sc`
will generate a flat contract
* `instantiate/optimize`
- solves for a recursive kinds table
- calls `optimize` with the table
- calls `instantiate` with the same table