0.23.1 concat drops the name of the merge axis when not aligned
#### Code Sample, a copy-pastable example if possible

When the columns are aligned, no problem, the columns in the result have the correct name ('ID' here).

```python
pd.concat([
    pd.DataFrame([[0, 1]], index=['r0'], columns=pd.Index(['a', 'b'], name='ID')),
    pd.DataFrame([[2, 3]], index=['r1'], columns=pd.Index(['a', 'b'], name='ID')),
], sort=True)

# out:
# ID  a  b
# r0  0  1
# r1  2  3
```

However, when the columns are not aligned, then the name seems to disappear:

```python
pd.concat([
    pd.DataFrame([[0, 1]], index=['r0'], columns=pd.Index(['a', 'b'], name='ID')),
    pd.DataFrame([[2, 3]], index=['r1'], columns=pd.Index(['a', 'c'], name='ID')),
], sort=True)

# out:
#     a    b    c      <-- notice how the columns have lost their name ('ID').
# r0  0  1.0  NaN
# r1  2  NaN  3.0
```

#### Problem description

When concatenating DataFrames, I expect the non-concatenating axis (the columns axis, in the examples above) to keep its name(s).

An interesting question occurs if the instances of the non-concatenating axis are not only misaligned, but also have different names. In that case, we could use the majority value or drop altogether (None).  In our code, we use `names = collections.Counter([df.axes[nc_axis].names for df in objs]).most_common(1)[0][0]`.

#### Expected Output

```python
pd.concat([
    pd.DataFrame([[0, 1]], index=['r0'], columns=pd.Index(['a', 'b'], name='ID')),
    pd.DataFrame([[2, 3]], index=['r1'], columns=pd.Index(['a', 'c'], name='ID')),
], sort=True)

# out:
# ID  a    b    c      <-- name 'ID' should be retained, since there is no ambiguity
# r0  0  1.0  NaN
# r1  2  NaN  3.0

# notice how the columns have lost their name ('ID').
```

#### Output of ``pd.show_versions()``

<details>

```
INSTALLED VERSIONS
------------------
commit: None
python: 3.6.4.final.0
python-bits: 64
OS: Linux
OS-release: 3.13.0-77-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8

pandas: 0.23.1
pytest: 3.3.2
pip: 9.0.1
setuptools: 38.4.0
Cython: 0.27.3
numpy: 1.14.5
scipy: 1.0.0
pyarrow: 0.8.0
xarray: None
IPython: 6.1.0
sphinx: 1.6.3
patsy: 0.4.1
dateutil: 2.6.1
pytz: 2017.3
blosc: None
bottleneck: 1.2.1
tables: 3.4.3
numexpr: 2.6.4
feather: None
matplotlib: 2.1.0
openpyxl: 2.4.8
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.0.2
lxml: 4.1.0
bs4: 4.6.0
html5lib: 0.999999999
sqlalchemy: 1.1.13
pymysql: None
psycopg2: 2.7.3.2 (dt dec pq3 ext lo64)
jinja2: 2.10
s3fs: None
fastparquet: 0.1.3
pandas_gbq: None
pandas_datareader: None
```
</details>
