POC: add closed argument to IndexSlice
alternative to #27060 for consideration.

implementation is far from complete.

only the following cases have been implemented to start..

```python
>>> import pandas as pd
>>>
... dates=[
... "2001-01-01 23:50",
... "2001-01-02 00:00",
... "2001-01-03 00:08"]
>>>
>>> ser=pd.Series(range(3),pd.DatetimeIndex(dates))
>>> ser
2001-01-01 23:50:00    0
2001-01-02 00:00:00    1
2001-01-03 00:08:00    2
dtype: int64
>>>
>>> ser.loc[:pd.Timestamp("2001-01-02 00:00")]
2001-01-01 23:50:00    0
2001-01-02 00:00:00    1
dtype: int64
>>>
>>> idx = pd.IndexSlice
>>> ser.loc[idx[:pd.Timestamp("2001-01-02 00:00")]]
2001-01-01 23:50:00    0
2001-01-02 00:00:00    1
dtype: int64
>>>
>>> idx = pd.IndexSlice(closed='left')
>>> ser.loc[idx[:pd.Timestamp("2001-01-02 00:00")]]
2001-01-01 23:50:00    0
dtype: int64
>>>
>>> ser.loc[:"2001-01-02"]
2001-01-01 23:50:00    0
2001-01-02 00:00:00    1
dtype: int64
>>>
>>> idx = pd.IndexSlice(closed='left')
>>> ser.loc[idx[:"2001-01-02"]]
2001-01-01 23:50:00    0
dtype: int64
>>>
>>> ser2=pd.Series(range(3),index=[50,70,80])
>>>
>>> ser2.loc[:70]
50    0
70    1
dtype: int64
>>>
>>> idx = pd.IndexSlice(closed='left')
>>> ser2.loc[idx[50:70]]
50    0
dtype: int64
>>>
>>> idx = pd.IndexSlice(closed='right')
>>> ser2.loc[idx[50:70]]
70    1
dtype: int64
>>>
>>> idx = pd.IndexSlice(closed='both')
>>> ser2.loc[idx[50:70]]
50    0
70    1
dtype: int64
>>>
>>> idx = pd.IndexSlice(closed='neither')
>>> ser2.loc[idx[50:70]]
Series([], dtype: int64)
>>>
>>> idx = pd.IndexSlice(closed='foo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\simon\OneDrive\code\pandas-simonjayhawkins\pandas\core\indexing.py", line 97, in __call__
    return _IndexSlice(closed=closed)
  File "C:\Users\simon\OneDrive\code\pandas-simonjayhawkins\pandas\core\indexing.py", line 93, in __init__
    raise ValueError(msg)
ValueError: invalid option for 'closed': foo
```