Rework display logic again.
v0.11.0 introduced last-minute changes to the way the dataframe display logic works,
and they haven't proven themselves. The churn is unforunate, but if it's broken,
fix it. 

`height` is deprecated.
max_rows solely determines the amount of rows displayed.

rebased on top of #3657.

Merging the previous PR and subsequent last minute fixes so close to the release 
contributed to the problems only being discovered after the release.
So please test and report if this works for you, in terminal, qtconsole or notebook,
since the 0.11.1 release is so close.

cc  @hayd , @lodagro ,@jreback 
