Clone input nodes when inserting over a set

I noticed this bug while *wrapping* up gh-558 (c'mon that's funny). I think the changeset ended up being a little ugly, so please don't hesitate to offer suggestions for refactoring!

Commit message:

> This patch increases parity with jQuery, specifically in cases where
> manipulation methods are called with existing nodes on sets containing
> more than one element. In such cases, the provided node should be cloned
> prior to insertion (excepting the final element in the set, where the
> original node should be inserted).
The second part of `quickExpr` appears to be unused:

```javascript
> quickExpr.exec('<p>foo</p>')
['<p>foo</p>', '<p>foo</p>', undefined]
> quickExpr.exec('#bar')
['#bar', undefined, 'bar']
```

We could simplify matters greatly:

```javascript
return /^[^#<]*<[\s\S]+>[^>]*$/.test(str);
```

I'm not sure what purpose the `#` serves in this pattern. Do you know, @MatthewMueller?