Allow AutoContexts to be created from context.new()

This adds a batch_size kwarg to context.new which results in an
AutoContext being registered instead of a regular Context. Aside from
being more convenient, this allows the AutoContext behavior to be
abstracted from the client. This helps in the event that we decide to
bring AutoContext's batching functionality into Context, removing the
need for the subclass.

@robertkluin-wf @ericolson-wf @beaulyddon-wf @tannermiller-wf