Move "item_moved" event later in the item update process.  Fixes #2077.

Before, this was before the children's caches were cleared, so if the
"item_moved" set an album cover, it would fail with an invalid path.  For the
same reason, we move it after the data file update, too.  Lastly, get we get
rid of duplicated code in item::move() since the "item_moved" event already
does this.