Updated sortable to support scrolling of the viewport

jquery UI was removed as a dependency so "sortable" had to be
re-implemented.

Turns out that that isn't so straightforward once you get issues
such as scrolling, first & last elements, 2-dimensional sorting
and what not involved.

The current implementation of "sortable" requires the
scrollParent (if one exists) to be passed in
so it can determine the viewport offsets.