API: Categorical constructor shouldn't accept scalar for categories
#### Code Sample, a copy-pastable example if possible

I was surprised to find that `Categorical` accepts scalars for `categories`.

```python
In [1]: import pandas as pd
In [2]: pd.Categorical([1, 2], categories=2)
Out[2]:
[NaN, 2.0]
Categories (1, int64): [2]
```

AFAICT, this isn't documented, though we explicitly test it [here](https://github.com/pandas-dev/pandas/blob/8daf9a7e45344dc5a247410e037dccb41b97a3db/pandas/tests/test_categorical.py#L252). Am I missing a use-case where this is desirable, or should we just depreciate it and simplify the constructor?

Anyone want to guess what the categories are on `pd.Categorical(['a', 'b'], categories='abcd')` :)

cc @janschulz 