Make MultiTenancy Test Pass

This required some ugliness. The tenant is switched on every call by
changing the partition values, and this requires synchronization on all
public methods, removing all concurrency. In addition, the code for
switching the partition is hacky at best. These changes will almost
certainly need to be totally replaced later.