ENH: set the first code value in Categorical
#### Is your feature request related to a problem?

```python
import pandas as pd
from pandas.api.types import CategoricalDtype

df = pd.DataFrame(data={'col': ['small', 'medium', 'large']})
ordered = CategoricalDtype(categories=['small', 'medium', 'large'], ordered=True)

df.col = df.col.astype(ordered)
df.col.cat.codes

# 0    0
# 1    1
# 2    2
# dtype: int8

```
I often wish I can set the beginning underline code value in a Categorical. Right, no matter ordered or unordered, pandas will always begin the first code value as 0. Sometimes, I want it to begin with 1. like

```
ordered = CategoricalDtype(categories=['small', 'medium', 'large'], start=1, ordered=True)
```

Currently, there is no alternative I can think of other than manually storing the modified codes in a new column but this will not affect the underline coding. I really wish this feature could be added.
