start work on StatisticsPage
retry transactions that fail due to deadlock or other recoverable error
roll back ALL failed transactions
Added UserAndSubmissionReceipt model class

Useful for pairing users with a particular submission receipt
(e.g., the user's best submission for a particular problem.)

Changed code to get best submission receipts to return this type.
StudentProgressView can display some data
show all students in course in problem statistics
fixed bug so that Problems admin servlet works

It is now the case that a UserAndSubmissionReceipt may not
actually have a submission receipt (if the user has not attempted
the problem)
added nifty bar graph visualization of scores in statistics page
in statistics page, show gray bar for students who didn't do problem
set problem label in statistics page on activation
added a combo box to choose section in statistics page
implement section selection combo box in statistics page
Added a download button to download data as CSV

Uses the existing /admin/problems servlet.

Doesn't yet handle selection of the section.
modified ProblemURLInfo to allow section number to be specified
problem admin servlet: support getting results for specific section
support downloading CSV for a specific section
added additional data columns to student work on problem CSV

Specifically, added num passed, num tests, and percent for
each user.
admin problems servlet: don't require auth if session has User already
percentages are out of 100, duh
Merge branch 'statistics'