BUG: (GH3830), panel assignment using loc with a transpose frame did not work
ER: GH3777, raise a NotImplementedError for Panel -> Panel setting with alignment
Merge pull request #4507 from jreback/panel_index

BUG/ER: various panel indexing fixes
TST: tests for GH4502, consistency in ix assignments, but ok in master
Merge pull request #4509 from jreback/ix_consist

TST: tests for GH4502, consistency in ix assignments, but ok in master
CLN: do not allow frozenset
Merge pull request #4482 from cpcloud/set-construct

BUG: raise on frozenset construction by Series
BUG: read_hdf was not respecting as passed mode (GH4504)
DOC: cookbook example
DOC: added google finance as a data source to the DataReader doc
DOC: corrected cookbook.rst example on reversing timeseries
BUG: GH4516 Fixed issue with sorting a duplicate multi-index that has multiple dtypes
Merge pull request #4518 from mehyar/doc_datareader

DOC: added google finance as a data source to the DataReader doc
Merge pull request #4522 from jreback/mi_dups

BUG: GH4516 Fixed issue with sorting a duplicate multi-index that has multiple dtypes
DOC: add more docs to CONTRIBUTING
DOC/BLD: Update version support in docs and setup.py.
Merge pull request #4530 from jtratner/update-version-support-in-docs

DOC/BLD: Update version support in docs and setup.py.
ENH: Make core/index exceptions more descriptive

* `assert_copy`: You can use `assert_copy` to check that two iterables
  produce copies that are not the same object. (uses `assert_almost_equal`
  under the hood).
* Fix assert_almost_equal to handle non-ndarrays (previously failed
  after iterable check)
* Fix test_mixed_panel to reflect true name behavior
ENH: Index inherits from FrozenNDArray + add FrozenList

* `FrozenNDArray` - thin wrapper around ndarray that disallows setting methods
  (will be used for levels on `MultiIndex`)
* `FrozenList` - thin wrapper around list that disallows setting methods
  (needed because of type checks elsewhere)

Index inherits from FrozenNDArray now and also actually copies for deepcopy.
Assumption is that underlying array is still immutable-ish
BUG/ENH: Make names, levels and labels properties.

* `names` is now a property *and* is set up as an immutable tuple.
* `levels` are always (shallow) copied now and it is deprecated to set directly
* `labels` are set up as a property now, moving all the processing of
  labels out of `__new__` + shallow-copied.
* `levels` and `labels` are immutable.
* Add names tests, motivating example from #3742, reflect tuple-ish
  output from names, and level names check to reindex test.
* Add set_levels, set_labels, set_names and rename to index
* Deprecate setting labels and levels directly

Similar to other set_* methods...allows mutation if necessary but
otherwise returns same object.

Labels are now converted to `FrozenNDArray` and wrapped in a
`FrozenList`. Should mostly resolve #3714 because you have to work to
actually make assignments to an `Index`.

BUG: Give MultiIndex its own astype method

Fixes issue with set_value forgetting names.