fix(jqLite): clone wrapNode in jqlite/wrap

Change jqLite's implementation of wrap() to clone the wrapNode before
wrapping the target element in it.

Match jQuery's wrap() behavior and prevent accidentally attaching
target element to the DOM as a side effect.

Closes #3860
Why is this needed? Couldn't you use any other wrapper for root that is not actually in the DOM?