Added Opaque Keys Support

- Updated CSV names
- Updated URL regex
- Refactored view tests

@rocha @dsjen @brianhw @mulby 
The LMS code I saw for the csv downloads was adding a urllib.quote() call around the course_id (or the whole filename), to protect against stray characters (like an extra colon in the course or run, for example).  Might be prudent to add something similar here?