test grader caching (#2050)

Generalizes the failing fake autograder, new mode where it will succeed
n time and then fail.
cache interactive autograder results (fix #2050)

Use our simple filesystem-based cache to store results from the remote
grader.  We only cache for two hours for now, which should still be
useful, but we could consider going longer (days).

The cache key is the entire params structure that includes both the
student submission and the grader parameters (grader name, question
number).  This errs on the side of safety.

Some imports and variable cleanups while I was in here.
remove errant debug stmt (#2050)
grader caching: chef recipe to create db table (#2050)
grader caching: create DB table with every app server (#2050)

This is overkill, since we would only really ever need to do this once,
and then from only one app server.  But for now this is fine since it
fails quickly and is idempotent.
grader cache: switch to db-based cache (#2050)

Expect this to improve hit rates across multiple app servers.  This is a
special operation that we're caching -- infrequent and very expensive.
So it is OK to use a central DB cache for this.  Better would be a
central memcache of course but we don't have one of those (yet).
Merge branch 'master' of github.com:Stanford-Online/class2go into sef-grader-cache
grader cache: shorten cookbook readme (#2050)
Merge pull request #2282 from Stanford-Online/sef-grader-cache

Cache remote interactive autograder responses (#2050)