BUG/API Raise ValueError for non-unique stack by name
Closes https://github.com/pydata/pandas/issues/6729

We should raise a ValueError when (un)stacking and referring to a non-unique index _name_. You can still stack and unstack by position like normal (no ambiguity there, unless your names are integers and that integer is duplicated, in which case we'll raise a ValueError).

Right now I'm assuming that index names are always hashable, but that's not necessarily true, is it? Any good ways to check the uniqueness of the names? I didn't see anything on MultiIndex that did this.

@TomAugspurger my expectation would be that index names should be hashable. They're supposed to be key-esque, right? (plus tuples are still hashable). If you needed to, I'd catch the TypeError from trying to hash non-hashable object and just warn in that case.
 @TomAugspurger pls rebase....seems ok otherwise
 @TomAugspurger this closes #6319 as well?
 This only closes #6319 if we don't want to support pivots/crosstabs where the names are the same. But we should be able to support them. I can do a proper fix for #6319 for .14 probably. 

I haven't merged this because my pushes to the remote branch aren't showing up here. All I need to do is rebase, so I may just do that as I'm merging. Should just be release notes / v0.14 that have conflicts. Sound OK?
 how so you push to the remote?
do u have it set as a tracking branch?
 Somewhere along the way I created two branches: `origin:unstack-nonunique` and `origin:origin/unstack-nonunique`. This PR is form `origin:origin/unstack-nonunique`, but when I push to that the changes don't appear.

Making a new PR at #6849
