Added Opaque Keys Support

- Updated CSV names
- Updated URL regex
- Refactored view tests

@rocha @dsjen @brianhw @mulby 
`ddt` is feasible, but I found it simpler to just write two test methods:

```python
def test_valid_course(self):
     self.assertViewIsValid(self.course_id)

def test_valid_course_with_deprecated_key(self):
     self.assertViewIsValid(self.deprecated_course_id)
```