Add Upgrade API

I'm putting this up now to get early feedback.  I am still working on testing, but the implementation is basically there.  I've also attempted to add docs (and modify optimize docs as necessary).

This branch does the following:
* Add the new API at the rest layer, being backed by the optimize API with upgrade flag, and segments api to find upgrade status.
* Add `upgrade` flag to optimize API, and deprecate `force` flag (will remove in master)

closes #7884
I agree - can we update the `Segment.java` to return the codec as well. We have it when we build it though. I think we can just compare against `Codec.getDefault().getName()`?