ENH: add support dtype='category' in Series constructor
xref #8074
closes #8076

```
In [1]: Series([1,1,2,2,3,4,5],dtype='category')
Out[1]: 
0    1
1    1
2    2
3    2
4    3
5    4
6    5
dtype: category
Levels (5, int64): [1 < 2 < 3 < 4 < 5]
```

Apart from the naming LGTM
 @JanSchulz any other comments? (better to merge smaller fixes that large ones!)
 @JanSchulz though in doc revisit, maybe add about creating categorical Series with
`Series(.....,dtype='categorical')` somewhere
 no, this is ONLY called internally, going to ignore the passed in fill_value etc, which don't matter. These routines are pretty generic and meant for generic fill value substitution (but here we are doing it only on the codes which are by definition numeric), so only -1 matters.
 I think we end up with a complete rewrite/revise of the docs, so I wouldn't touch that until after. If you have something specific, just add a line in #8078
 Then an `assert not kwargs`, so we see that in the unittests?
 fixed up todo list....lt me see about the kwargs (they are passed on thru anyhow)
 Looks good.
