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
As I mentioned elsewhere, I now think my preference is to do it like you are doing, i.e. pass the object to the template and let it call ```json.dumps```. To clarify, both options are server side, just one is in the Python code and one is in the Mako template.