BUG: Fix read_json shape error on multi-indexed DF/SR with orient='split' #4889

- [ ] closes #xxxx
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

As stated previously I think the issue is with the DataFrame constructor and not anything in the JSON code - @LucasG0 is that something you'd like to investigate? Yes, I'd like to investigate when available. As stated previously there seems to be an issue with the `DataFrame` constructor when a 2d array is passed as index :

```python
>>> pd.DataFrame(data=[[1, 2], [5, 6]], index=[["a", "b"], ["c", "d"]])
     0  1
a c  1  2
b d  5  6
```
I think we could expect the same kind of creation between data and index, like :

```python
>>> pd.DataFrame(data=[[1, 2], [5, 6]], index=[["a", "b"], ["c", "d"]])
     0  1
a b  1  2
c d  5  6
```


Also, the current index from 2d array is created according to `pd.MultiIndex.from_arrays`.
But if we use a list of tuples as index, we obtain a single `Index` instead of a `MultiIndex` as we would obtain according to `pd.MultiIndex.from_tuples`.
```python
>>> pd.DataFrame([[1, 2], [5, 6]], index=[("a", "b"), ("c", "d")])
        0  1
(a, b)  1  2
(c, d)  5  6
```

I wonder if we should expect the following :

```python
>>> pd.DataFrame(data=[[1, 2], [5, 6]], index=[["a", "b"], ["c", "d"]])
     0  1
a b  1  2
c d  5  6
```

Before diving in code, I am interested to know if these two points are considered to be some issues.
Thanks !
 This pull request is stale because it has been open for thirty days with no activity. Please update or respond to this comment if you're still interested in working on this. I opened #37670 to track the discussion re: DataFrame constructor & closing this. 

@LucasG0 we'd love to have you contribute other PRs of course! If you're interested in #37670 the way forward there is to get agreement in the issue on how to proceed