prob/typed: switch to instrument first, typecheck second

This is the wrong order---we would prefer to typecheck first,
instrument second. But for some reason (probably the submod expander
bug) I can't get that order to work. So tell the typechecker about
the names inserted by expansion and hope it doesn't get too confused
by instrumenter rewriting things.
move provide list to main (easier to write type env for macros)
prob/typed: add type env, get more things working

Change instrumenter, internal functions to cooperate with TR better.
update typed examples
instrumenter: pre-expand inserted code for fewer macro steps

This change is just to simplify debugging.
update todo
notes on drift proposals
drift proposals for discrete dists
drift proposal for inverse-gamma
drift proposal for wishart dist
drift proposal for inverse-wishart
fix bug in csv file reader
avoid (log 0) in discrete-dist (and elsewhere?)
dice example
added mh dir, moved mh support code there

also combined hmc code into one module
removed useless requires
enum-gibbs: add structural check, improve error message
added mixture transitions
add reinitialize method to mh-sampler

also catch up on exports
added example for hard-to-initialize models