CLN: Change labels and levels to be mostly immutable.

ENH: Use FrozenList for levels, labels in index

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`.

ENH: Deprecate direct setting of levels and labels
TST: Small fixups to tests

TST: Fix test_mixed_panel to reflect true name behavior

TST: Make drop names test better.
BUG: Give MultiIndex its own astype method

fixup to astype

various test fixups (prob just combineme)

Fixes issue with set_value forgetting names.
CLN: core/index.py style fixes
PEP8 all over the place
CLN: PEP8 many files.

CLN: PEP8 pandas/core/index.py

CLN: PEP8 util/testing.py

CLN: core/index PEP8 + code cleanup

CLN: PEP8 test_index.py

PEP8 core/generic