do manual bookkeeping to only add/remove "over" class on outer element

This fixes the case where the droppable target has child nodes. Got the idea from this lib: https://github.com/bensmithett/dragster