Fix behavior of hist function when passed empty dataset

A colleague recently pointed out to me that the hist function is not well-behaved when it is passed an empty dataset.  After this PR, we explicitly check for an empty dataset and throw a useful exception. The PR also allows the user to pass an empty dataset along with non-empty datasets, so that the empty dataset will show up on the legend. This is what my colleague was trying to do.

Incidentally, this PR makes the minimal changes possible to fix the problem. Many of these problems arise because of code that works around the issues with having a log-axis go all the way down to zero. Most of this code is no longer necessary because we added `nonposy="clip"` when setting the log scale. There's a chance that removing this code will slightly change how the axis limits are calculated, though, I want to target the removal at master.