Promote with-connection to primary namespace [IMMUTANT-345]

We also allow options passed to it to act as default values for the
relevant options supported by the nested calls. Only when different
connection-related options are passed by the nested calls is a new
connection bound to the new, and now only, *options* thread local.
Rename delayed-receive, make it more generic, and move it to core
Make core with-connection multi-arity, so options are optional