BUG: DataFrame.equals should not care about block order (GH #9330)
closes #9330 and another version of the same problem [here on SO](http://stackoverflow.com/questions/29311659/how-can-pandas-dataframes-appear-identical-but-fail-equals) by canonicalizing the block order during an `equals` comparison.

Tested at the block manager level and above it at the frame level.
