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 don't think that matches the logic there? We may do multiple passes through this function, where we return 5 merges, until we finally reset the flag to false. Notice the early return statement inside this if, where we exit the function without setting to false.