Create polyfill for browser not supporting setDragImage

* Reorganize code: create seperate util libraries.