Range controller swap

Merging @kriskowal's https://github.com/montagejs/montage/pull/1252 into master plus adding a test to show it works.