BUG: union_categoricals can't handle NaN
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew not needed

`union_categoricals` doesn't handle `NaN` properly.

**on current master:**

```
from pandas.types.concat import union_categoricals
union_categoricals([pd.Categorical([np.nan, 1]), pd.Categorical([2, np.nan])])
# [1, 1, 2, 2]
# Categories (2, int64): [1, 2]

union_categoricals([pd.Categorical([np.nan]), pd.Categorical([np.nan])])
# IndexError: cannot do a non-empty take from an empty axes.
```
