Fix offline_gradecalc

Bug: Throws error when can't find a user on the request object for grading or can't find a session attribute.

Fix: Added a user attribute with a value of the current student and a session attribute with a value of an empty dictionary.
fix crash in peer eval xmodule

As documented in Jira LMS-806:

Steps to reproduce:
* as one user, for a peer evaluated problem, enter something that needs
  peer grading
* as another user, log in and fire up the peer grading panel. You should
  see something that needs attention, a yellow exclamation badge
* clicking on the "do grading" panel will fail with a 500, stacktrace
  attached.
* it's possible that the question where this is being done must first have
  professor calibration done in order for peers to be able to actually get
  work to grade.

Don Mitchell debugged this with me and saw some problems in the ways
that the peer_evaluation xmodule code was accessing dates. Instead of
using the normal lms accessors, by going straight into the _module_data
it would be bypassing some important code (caching?). Fixing this to be
more standard did the trick.
Make descriptorsystem inherit from Runtime
Switch to studio_view
Fix repeated doc builds
Make builds quiet by default
add a metadata cache and re-compute ignore when deleting a course to speed up the whole thing as well as squelching warnings in the console output
add same optimizations to the clone course command
rename clone.py to a more descriptive clone_course.py
Refactor wrap_xmodule call
show the organization, course number, course run in the course listing page in CMS
one field had wrong label nesting
Bump up pip requirement to latest.

    Solves an issue with using git > 1.8.1 for github based pip requirements.
Integrate JsonResponse into lms/djangoapps/instructor/views/api.py
Translate messages early
Auto-enroll course staff to fix "View Live".

STUD-554

Code review feedback.
tie in the normal courseware link url rewriting in capa module since that presents HTML via an Ajax callbacks and not via module_render.py
Check that content-type starts with application/json

When Chrome sends the AJAX request to add a user to the course team, it sets the
Content-type to "application/json". However, when Firefox sends the same request,
it sets the Content-type to "application/json; charset=UTF-8". This commit only
checks that the Content-type begins with "application/json", not is identical
to it; that way, Firefox can play, too.
adjustment to sidebar help text on PDF textbook page in studio
have the Files and Upload pages surface a 'portable_url' which uses the /static/ shorthand which is more portable across course runs