message: Fix a tricky bit of move logic.
  This fixes DIM-3ZM
diff: @@ -401,21 +401,15 @@ function ItemService(): ItemServiceType {
  });
  }
  + /** De-equip an item, which really means find another item to equip in its place. */
  function dequipItem(item: DimItem, excludeExotic = false): IPromise<DimItem> {
  - const storeService = item.getStoresService();
  const similarItem = getSimilarItem(item, [], excludeExotic);
  if (!similarItem) {
  return $q.reject(new Error(t('ItemService.Deequip', { itemname: item.name })));
  }
  - const source = storeService.getStore(item.owner)!;
  - const target = storeService.getStore(similarItem.owner)!;
  -
  - let p = $q.when(item);
  - if (source.id !== target.id) {
  - p = moveTo(similarItem, source, true);
  - }
  - return p.then(() => equipItem(similarItem)).then(() => item);
  + const ownerStore = item.getStoresService().getStore(item.owner)!;
  + return moveTo(similarItem, ownerStore, true).then(() => item);
  }
  function moveToVault(item: DimItem, amount: number = item.amount) {
  