BUG: Fix inconsistent ordering between left and right in merge
- [x] closes #35382
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Passed sort through for right join too. Did not see a reason why not.

On a related note: I think outer joins return a inconsistent order too.

```
df = pd.DataFrame({'a': [1, 0, 1]})

print(df.merge(df, on='a', how='outer', sort=False))
   a
0  1
1  1
2  1
3  1
4  0
```

instead of
```
   a
0  1
1  1
2  0
3  1
4  1
```

like ``left`` and ``right`` now. Would have to add a ``sort`` keyword to outer join. Should I open an issue for that?
