Only reinsert tasks which were not enqueued

Addresses issue #154.

> If a list of more than one Tasks is given, a raised exception does not
guarantee that no tasks were added to the queue (unless transactional is set
to True). To determine which tasks were successfully added when an exception
is raised, check the Task.was_enqueued property.

@beaulyddon-wf @markshaule-wf @jasonaguilon-wf @rosshendrickson-wf @tannermiller-wf