Add Zotero.lazy() and use in _getConnectionAsync

I tried to describe what this function does earlier today and failed. Hopefully the code is clearer.