Add Zotero.lazy() and use in _getConnectionAsync

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