BUG: allow missing values in Index when calling Index.sort_values
- [X] closes #35584, xref #35922 
- [X] tests added 1 / passed 1
- [X] passes `black pandas`
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [X] whatsnew entry

### Problem

`Index.sort_values` breaks when `Index` includes `None`. The OP points out that a `Series` doesn't break in a similar case. In my opinion, there is a number of ways missing values can creep into an Index, and `sort_values` shoudn't be breaking.

### Details

When we do `Series.sort_values` we shunt the missing values to the end or the beginning of the Series depending on `na_position`, and then `argsort` the rest. When we currently do `sort_values` on an `Index`, we try to `argsort` the whole thing, and it expectedly breaks.

### Solution and alternatives

I propose we do the same stuff for `Index` that `Series` does, that is send the missing values to the end or the beginning. Added the `na_position` kwarg that works similar to how it works in `Series`.

Another possible solution is to explicitly forbid Indices with missing values and raise a clear error. I don't think it's advisable, since there isn't much of a practical difference between non-unique indices, which we allow, and this case.
