ENH: add optional sort_order keyword to `concat()`.
#### Is your feature request related to a problem?

xref #33634
```python
ser1 = pd.Series(["1","3"], index=pd.Index(["a", "c"], dtype="object"), dtype="object", name="test1")
ser2 = pd.Series([3, 4, 5], index=pd.Index(["a", "b", "c"], dtype="object"), dtype="float64", name="test2")
ser3 = pd.Series([6,7,8], index=pd.Index(["a", "b", "c"], dtype="object"), dtype="float64", name="test3")
pd.concat([ser1, ser2, ser3], axis=1, sort=False, keys=["test1", "test2", "test3"])
  test1  test2  test3
a     1    3.0    6.0
c     3    5.0    8.0
b   NaN    4.0    7.0
```
When concatenating, `concat` uses the index from the first series to determine the order of the non-concatenated axis.
It would be neat to have a way specify this order with either a function or a list. Currently, `sort=True` can be used, but it only allows for sorting. 

#### Describe the solution you'd like

The solution could be either to:

- add a new argument
- expand the sort argument to take functions or lists
- use the `key` argument for this. 

#### API breaking implications

I think this change can be backward compatible

#### Describe alternatives you've considered

As an alternative, reindexing could be used. But this requires the extraction of the largest index first.

