BUG keep name after DataFrame drop, add check_name to assert_dataframe_equal
This should fix #2939. (redo of pull-request #2961, which I screwed up).

I want to default `check_names` to True but at the moment this causes some errors (_some_ are just test expected not including name...), some may be bugs. Work in progress... I'll put it in another branch.

Update: It looks like there'll be a couple of similar (name-based) bugs...
