BUG: format small floats correctly (GH9764)
closes #9764 

In order to display a number from range (0,1) in decimal format with N significant digits (and not in scientific format), the number needs to be greater than or equal to 1e(-N+1), not 1e-N. 

Did not test for range of display.precision, as this does not seem to current practice.

Did not include tests as they would imply an output format which might change in the future.

This should have a test to verify that your fix works. We use unit tests to verify our public API, but they're also for internal usage. The test will guarantee that nobody breaks this behavior without thinking carefully about it, even if we're not going to guarantee the output format to our users.
 Sure, test added to branch.
 looks pretty good -- could you add a line to the bug fix section of the release notes for v0.16.1?
 also prob needs a test with mixed (meaning a really small number and a normal sized float). further this prob needs a quick way (eg vectorizes) to figure out whether to do this formatting (eg see how Timedelta does it for example) otherwise perf on a big array may be a problem
 @shoyer Thanks for comments - updated. I have also noticed that some of my commit msgs were not 100% in line with the contribution recommendations, so I've updated them.
 ok this lgtm
 Thanks @tomazberisa!
