Add html5 canvas support

Native jQuery clone() method does not support canvas context copying. Therefore if source or destination collections contain canvases, all of them turn into blank rectangles during the quicksand animation.

This commit replaces all .clone() calls with a new function cloneWithCanvases() that fixes the described issue. The function causes a very small overhead, so the performance of the plugin is not affected.