add setDataSource method to Dataswap mortar

also now tracks the last index it swapped.

Unit tests are still needed, because this code is completely untested!