Added wrap overflow support to flowlayout

Allows a certain number of pixels to flow off the edge before wrapping.
Drag and drop work

Added getIndexFrom(pos) for shelves, which allows for drag and drop
insertions.
Added drag and drop insert highlighting.
Added full preview render of button on drag.
Tweaked orientation behavior.
Changed button drag behavior, drag now begins when the cursor is dragged
from the inside to the outside of a button.