Add RequireJS Optimizer.

**Ticket:** [TNL-481](https://openedx.atlassian.net/browse/TNL-481)

**sandbox:** http://studio.polesye.m.sandbox.edx.org/
**New Relic Page:** https://rpm.newrelic.com/accounts/88178/browser/4020167/v2_page_views
### Requests count:

Page  | Before | After
------------ | ------------- | -------------
[Dashboard](http://studio.polesye.m.sandbox.edx.org/course/) | 54 | 35
[Outline](http://studio.polesye.m.sandbox.edx.org/course/edX/DemoX/Demo_Course) | 66 | 37
[Container](http://studio.polesye.m.sandbox.edx.org/container/i4x://edX/DemoX/vertical/vertical_98cf62510471) | 114 | 55
[Advanced settings](http://studio.polesye.m.sandbox.edx.org/settings/advanced/edX/DemoX/Demo_Course) | 57 | 35
[Textbooks](http://studio.polesye.m.sandbox.edx.org/textbooks/edX/DemoX/Demo_Course) | 62 | 34

FYI: https://docs.google.com/a/edx.org/document/d/1pIyEaZ_bldy9riaXle0d59D_onJ7I_hISPqG0rhNIj8/edit#heading=h.lgqntoce8jlj

@andy-armstrong , @jimabramson , @cahrens , @tymofij  please review.
> I'm confused about this variable name. If excludeCommonDeps is true, shouldn't module.exclude include common_deps?
> 
> What is this code doing?

It's a helper method return an object that looks so https://github.com/jrburke/r.js/blob/master/build/example.build.js#L393 .