Fix Popcorn demo RangeController bug

Added a swap method in the RangeController (very similar to its splice
method). This fixes an issue where the Popcorn demo was not selecting
the first movie on load.
Just verified, `self` is indeed an `Array` in this context. `content` is an array, so `var self = content.clone()` creates a copy of that array.

I have just noticed an unrelated problem. This implementation is assuming `clone` is shallow, but it is actually deep by default on Array. The patched clone method forces this to be shallow. `content.clone(1)` should force a shallow clone.