Prevent calling uid twice in Spine.Model, by setting cid in attributes before constructing item

Currently:

A newly created item receives a new `cid`.

Then in `dup`, `attributes()` doesn't specify a `cid`, therefore when `constructor` is called (this is now the second time), `cid` can't be read from attributes.
I'm guessing the `or=` was removed because it was never called: `newrecord` is false, so a new `cid` is always created and taken instead of the original.

I believe the best fix is to swap in `cid` and out `id` *before* the duplicate is created.