WIP: add sort_levels to MultiIndex.from_product
Currently, `from_product` always sorts levels in the resulting MultiIndex. This means that the result does not necessarily have lexsorted labels/codes.

This PR adds an option to not sort levels when calling `from_product`. Using this option yields a few benefits:
1. It's simpler -- resulting levels on the MultiIndex are exactly those you passed in.
2. It's marginally faster -- you don't need to sort the levels.
3. The resulting MultiIndex is always lex-sorted. This is handy if you want to be able to index it effeciently.

The downside is that the result can be a little less intuitive, because levels and labels do not have the same sort order (#14015).

I'm suggesting this option because it would be useful for xarray (to fix https://github.com/pydata/xarray/issues/980) -- otherwise we would simply put it in our own utility function.

I'm not certain that this is the best argument name, or that I've described it in a way that is clear if you don't understand MultiIndex internals.
- [ ] tests added / passed
- [ ] passes `git diff upstream/master | flake8 --diff`
- [ ] whatsnew entry
