refactor($drop): support allowed selectors rather than simple allowed classes

Adds support for arbitrary selectors, which the droppable may use to decide whether or not a
draggable element may be dropped inside of it.

For most browsers and most applications, support for selector matching should be available, either
via Element.matches, Element.matchesSelector, Element.webkitMatchesSelector, Element.msMatchesSelector,
Element.oMatchesSelector, or Element.mozMatchesSelector, or alternatively jQuery.is or Sizzle.matchesSelector.

On other browsers, only class selectors are supported, and matching these may be slightly more expensive due
to requiring some string manipulation.

Closes #20