Initial commit of cms and lms python, html, css and js changes

@jrbl & @stvstnfrd - making it possible to add arbitrary HTMl to course_about sidebar
It's not your problem to fix it, but it offends me that this pattern repeats so many times in this file. It really should be a function call. Like, you would just say:
```
def _fetch_from_usage_key(where, what):
    try:
        return modulestore().get_item(course_key.make_usage_key(where, what)).data
    except ItemNotFoundError:
        return None

course_details.custom_sidebar = _fetch_from_usage_key('about', 'custom_sidebar')
```

But this belongs on a PR to upstream, not on a fork PR.