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
On first reading this seemed odd, but it is really the presence or not of the field that is important. If it isn't supplied then nothing happens, and if it is then it will publish no matter what the value. Are you keeping this so we can in the future add other values?

It actually seems odd to me that the caller doesn't invoke a publish action, but instead sets a field that implies that a publish operation is desired. This doesn't feel very REST-like. It is also odd that you can change values as part of publishing, while really you should publish what you've tested. I suppose this is how we've always done this so it is easier not to mess with it.

One long term desire of Miki's is to be able to choose where to publish, so one master CMS can publish to different LMS instances (publish to a test server, publish to the production cluster, publish to my local development instance etc). At that point we should probably provide an explicit publish operation.