Instrumentation for the function, vector and struct contracts.

Allows a profiler to detect when we're checking a contract.
First attempt at a contract profiler.

Breaks down time spent in contracts by contract, callee, etc.

Note: Original version dates from Jan/Feb, but I rewrote the git history.
Add a module graph view that shows contract costs per boundary.
Move get-times to utils.rkt, to use it from the contract profiler.
Display time in milliseconds, not in samples.
Render module graph.
Consider original blames and their swapped versions to be equivalent.
Factor out dot rendering.

Can't use redex's version because it needs the GUI.
Add boundary view of contract costs.
Simplify rendering.
Print cost breakdown to a file.
Return what the profiled code returns.
Add documentation.