use an elimination strategy for the `suggested()` function

Handles cases where "right" is requested, but the width of the page is no large enough for "left" nor "right" to work. Now in that scenario, "top" would be returned, for example.

Closes #20.