ENH: upgrade categoricals to a first class pandas type
     GH3943, GH5313, GH5314, GH7444

ENH: delegate _reduction and ops from Series to the categorical
     to support min/max and raise TypeError on other ops (numerical) and reduction

Add Categorical Properties to Series

Default to 'ordered' Categoricals if values are ordered

Categorical: add level assignments and reordering + changed default for ordered

Add a `Categorical.reorder_levels()` method. Change some naming in `Series`,
so that the methods do not clash with established standards and rename the
other categorical methods accordingly.

Also change the default for `ordered` to True if values + levels are passed
in at creation time.

Initial doc version for working with Categorical data

Categorical: add Categorical.mode() and use that in Series.mode()

Categorical: implement remove_unused_levels()

Categorical: implement value_count() for categorical series

Categorical: make Series.astype("category") work

ENH: add setitem to Categorical

BUG: assigning to levels not in level set now raises ValueError

API: disallow numpy ufuncs with categoricals

Categorical: Categorical assignment to int/obj column

ENH: add support for fillna to Categoricals

API: deprecate old style categorical constructor usage and change default

Before it was possible to pass in precomputed labels/pointer and the
corresponding levels (e.g.: `Categorical([0,1,2], levels=["a","b","c"])`).

This could lead to subtle errors in case of integer categoricals: the
following could be both interpreted as "precomputed pointers and
levels" or "values and levels", but converting it back to a integer
array would result in different arrays:

`np.array(Categorical([1,2], levels=[1,2,3]))`
interpreted as pointers: `[2,3]`
interpreted as values: `[1,2]`

Up to now we would favour old style "pointer and levels" if these
values could be interpreted as such (see code for details...). With
this commit we favour new style "values and levels" and only attempt
to interprete them as "pointers and levels" if "compat=True" is passed
to the constructor.

BREAKS: This will break code which uses Categoricals with "pointer and
levels". A short google search and a search on stackoverflow revealed
no such useage.

Categorical: document constructor changes and small fixes

Categorical: document that inappropriate numpy functions won't work anymore

ENH: concat support
Categorical: Thanks for Jan Schulz for much of the work on Categoricals

Doc: Add Release notes for #7217

DOC: update v0.15.0 notes

Categorical: .codes should be immutable

ERR: codes modification raises ValueError always

Categorical: use Categorical.from_codes() in a few places

Categorical: Fix assigning a Categorical to an existing string column

CLN: CategoricalDtype repr now yields category
DISPLAY: show dtype when displaying Categorical series (for consistency)

BUG: fix groupby with multiple non-compressed categoricals

Categorical: minor doc cleanups

ENH: add a metaclass to CategoricalDtype to provide issubclass support (for select_dtypes)

TST: io/pytables.py tests now raise NotImplementedError for dtype==category

DOC: document the new category dtype in select_dtypes
Merge pull request #7217 from jreback/categorical

WIP: categoricals as an internal CategoricalBlock GH5313
docs: rewrite .iloc accessing beyond ends.

Let's actually talk about what the current behaviour is, not what the
behaviour used to be.
Merge pull request #7756 from lexual/indexing_docs_past_end

docs: rewrite .iloc accessing beyond ends.
BUG: DatetimeIndex.__iter__ creates a temp array of Timestamp (GH7683)

PERF: DatetimeIndex.__iter__ now uses ints_to_pydatetime with boxing

tslib: remove code dup in ints_to_pydatetime

PERF: add inline to create_timestamp_from_*
Merge pull request #7720 from jreback/iter

PERF: improve perf of index iteration (GH7683)
ENH: Add uint and bool support in to_stata

Added support for uint (uint8, uint16 and uint32, but not uint64) and bool
datatypes in to_stata.   Added an explanation of supported data types in io.rst.
closes #7097 and closes #7365
Docs: MultiIndex support is hardly bleeding edge, remove docs warnings.
Merge pull request #7767 from lexual/remove_multi_index_bleeding_edge_comment

Docs: MultiIndex support is hardly bleeding edge, remove docs warnings.
Closes #7758 - astype(unicode) returning unicode.

Just calls numpy.unicode on all the values.
Seems to work alright on python2 and python3.

Added bugfix of #7758 to v0.15.0 changelog.
FIX: Documentation for for 0.14.1 change log

Missing code reference in change log documentation
BUG: unwanted conversions of timedelta dtypes when in a mixed datetimelike frame (GH7778)
TST: tests for internals/as_matrix() for all dtypes (including categoricals)
Merge pull request #7779 from jreback/td

BUG: unwanted conversions of timedelta dtypes when in a mixed datetimelike frame (GH7778)
Docs: Categorical docs fixups.
Merge pull request #7783 from lexual/docs_categorical_tidyup

Docs: Categorical docs fixups.
BUG: Bug in Series 0-division with a float and integer operand dtypes  (GH7785)
Merge pull request #7786 from jreback/div

BUG: Bug in Series 0-division with a float and integer operand dtypes  (GH7785)
Raise exception on non-unique column index in to_hdf for fixed format.

Fixes #7761.
TST: unicode compat for test_astype_unicode (GH7758)