Cache `USE` status on a per-connection-object basis.

The earlier scheme was only effective when a single thread only ever
allocates one connection.  This seems to be the case in the devserver,
but clearly should not be the case in production (e.g. with unicorn), 
since django.db closes connections in the request_finished signal.