throw error if bgtask isnt unique

e.g. if a bgtask already is in the queue or is running throw a error

this is for example for when multiple browser windows are open and
triggers the same bgtask to be executed, like for covers that are
triggered when the cover is fetched.

it's also useful for long-running tasks like add_listened_tracks when
the task can take longer than the cache-time
ignore NonUniqueQueueError when queueing cover fetching