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 thought about that (and was planning to change the Lucene upgrade MP to do the same), but @rmuir pointed out the codec could actually have some per field codecs which are not accounted for by the top level codec name.  I'm happy to add the codec name to segments api output, here or in a followup, but I'm not sure it can be used for this purpose unless we assume the per field codecs are not an issue (maybe for ES they aren't?).