Add layout keyword to dataframe.hist()

closes #4050. The current version defaults to a very sane default, but sometimes for presentation I prefer them all to be all in a row, or all in a column, or some non-balanced mix of the two.  This keyword gives the flexibility for all of those options.