Add AutoContext to automatically insert tasks in batches

Intended to automatically insert asyncs in batches as they are added to the context.

Working DO NOT MERGE

Debating on replacing queue.add() with queue.add_async(),
   but haven't decided if handles to the inserted Asyncs need to be kept around in case of insert failures.