WIP: New Publishing controls on Unit page.

STUD-1707

Known issues:

1. "has_changes" is a bit buggy at the moment. The best way to see "has_changes" change state is to add or delete components on the page. Editing a property of a component on the page that is already published does not change "has_changes"-- Ben has a PR with this fix.
2. The disabled colors for "View Published Version" and "Preview Changes" are not consistent.
3. "Preview" functionality does not work on sandbox-- Feanil to work on next week
4. "Discard changes" is not complete-- will be finished as a separate story.

Notes/Questions:

Sandbox with test course--  http://studio.cahrens.m.sandbox.edx.org/course/slashes:foo+foo+foo
I've started a pattern with my tests now of:
 - do something that triggers an AJAX call
 - verify that the request was correct
 - send a mock response

To make this easier, I wrote a helper method that tests the url, method and body of a JSON response. You might want to steal it from my branch, or I could refactor these tests when I merge.

https://github.com/edx/edx-platform/pull/4227/files#diff-0483a555d2c936406e84af0d8a4fa995R66