ENH: implement concat for EAs
Currently `pd.concat` doesn't accept `ExtensionArrays`:
``` python
In [3]: a = pd.array([1, 2], dtype='Int64') 
   ...: b = pd.array([3, 4], dtype='Int64')                                                                     

In [4]: pd.concat([a, b])                                                                                       
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-714da278d09e> in <module>
----> 1 pd.concat([a, b])

/workspaces/pandas-arw2019/pandas/core/reshape/concat.py in concat(objs, axis, join, ignore_index, keys, levels, names, verify_integrity, sort, copy)
    273     ValueError: Indexes have overlapping values: ['a']
    274     """
--> 275     op = _Concatenator(
    276         objs,
    277         axis=axis,

/workspaces/pandas-arw2019/pandas/core/reshape/concat.py in __init__(self, objs, axis, join, keys, levels, names, ignore_index, verify_integrity, copy, sort)
    358                     "only Series and DataFrame objs are valid"
    359                 )
--> 360                 raise TypeError(msg)
    361 
    362             # consolidate

TypeError: cannot concatenate object of type '<class 'pandas.core.arrays.integer.IntegerArray'>'; only Series and DataFrame objs are valid
```
We should make this work for both base EAs and the masked versions. For example:
``` python
In [5]: a = pd.array([pd.NA, 1], dtype='Int64') 
   ...: b = pd.array([1, pd.NA], dtype='Int64')                                                                 
   ...: pd.concat([a, b])                                                                                       
```