fix contract-random-generate so it picks the generation method
randomly during generation, not randomly up-front, before
generation
clean up and export support for exercising values with contracts
document contract-exercise