shuffle triggers an event
player more efficiently updates DB for some actions

 * updateTags updates all db entries in a batch and only emits updateDb
   event once and only if anything was actually changed.
 * following commands update all db entries in a batch and only if
   anything was actually changed:
   - addItems, shufflePlaylist, moveQueueItems, moveRangeToPos