Fix UID command errors in actions syncback.

Summary:
* Chunk UID fetch in generic IMAP syncback.  Fixes "BAD ['Command line too
  large']" error when there are lots of messages in a trash folder, and you try
  to fetch the headers for all of them.

* Make crispin_client.copy_uids a no-op when the uids argument is empty,
  instead of trying to issue a malformed command. Fixes T500.

Test Plan:
Check via bin/inbox-console that offending IMAP commands no longer
raise errors.

Reviewers: kav-ya

Reviewed By: kav-ya

Maniphest Tasks: T500

Differential Revision: https://review.inboxapp.com/D580
Don't fail in syncback when a Gmail account has no labels.

Summary:
It's entirely possible for the result of GmailCrispinClient.folder_names() to
not contain a 'labels' key. Previously this could cause syncback actions to
fail with KeyError.

Test Plan:
Check that the unarchive action can now succeed for a test account
with no labels.

Reviewers: kav-ya

Reviewed By: kav-ya

Differential Revision: https://review.inboxapp.com/D582