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)
Calibrate dependencies & configurationize Selenium

* Enable configuration of Selenium webdriver via environment variables to
  specify Chrome or Firefox (and hopefully in the future other things)
* Enable conditional imports of non-critical, non-unit-tested libraries so that
  their installation can be avoided when unnecessary.
* Creates suggested_requirements.txt to document which libraries these are and
  give users a chance to pip install -r them all.
* Per Chef recipes, pin Django >= 1.4.1, django-storages >= 1.1.6,
  boto >= 2.7.0. Per comments previously in README_SETUP.md, pin
  gdata == 2.0.17. Pin selenium version >= 2.30 so it works with recent
  firefoxes.
* Update documentation to reflect requirements.txt and
  suggested_requirements.txt as the final source of truth for Python
  dependencies.
** It should now be possible to have Chef install via requirements.txt
   and suggested_requirements.txt, just like we tell users to.
* Update to student video unit tests so only one video is actually
  checked (if one works, all should work, unless the fixtures are
  wrong.)
* Configure Travis to use Firefox with the Adobe Flash plugin installed for
  Selenium testing. This fixes Selenium testing on the grid. (closes #2272)
Minor cleanups to travis build improvements

* Removed bad unit test attribute decorator
* Issue warnings better in kelvinate()
* Add (horrible) SECRET_KEYs to CI versions of database.py
* Pin Django version at 1.4.1 (per conversation with @sefk)
Merge pull request #2289 from Stanford-Online/jrbl-2272-fix_travis_and_conditional_includes

Calibrate dependencies & configurationize Selenium
add comment to requirements.txt; bump master for travis
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)
#2298 - Add "Username" as column title for Student Scores in-line report
Merge pull request #2299 from Stanford-Online/dca_2298_add_username

#2298 - Add "Username" as column title for Student Scores in-line report
Merge branch 'master' of https://github.com/Stanford-Online/class2go into dglance-fabric

Conflicts:
	main/test_harness/test_base_selenium.py
Fixing styles in base.html