ENH/INT: libpandas refactor
xref #11960 

Create `libpandas` to support current user-facing API and container API (currently only numpy).
- `ImmutableArray`, single immutable dtyped container with a `pandas.DataType` dtype mirroring numpy/python scalars as well as current pandas extension types (`Categorical`, `datetime w/tz`), integer/boolean NA support, future types (`string` w/encoding, var-len), maybe ragged array etc.
  - cached-properties:
    - `isnull/notnull`
    - `is_monotonic_increasing/is_monotonic_decreasing`
  - methods:
    - indexing getitem ops (positional, slicing, fancy)
- `Array` - mutable sub-class of `ImmutableArray`
  - cached-properties above are now just properties
  - indexing supports setitem as well
- `Table` - ordered-dict-like container of `Array` 
