Bug 1097421 - Upgrade email.js libraries to move to upstream startTLS

This is primarily a move to the upgrade startTLS functionality.  This included
a fix to the SMTP implementation where a server could avoid TLS-initiation by
not implementing EHLO.  (https://github.com/whiteout-io/smtpclient/pull/20).
This goal was bug 1060558.

An additional fix we had made locally but not upstreamed (but have now
upstreamed) and that has improved test coverage on our end (see test_mine) is
a problem relating to newlines.  See
https://github.com/whiteout-io/browserbox/issues/35.

Other (new) fixes folded in here:
- Namespace NIL delimiter: https://github.com/whiteout-io/browserbox/pull/36
- trailing whitespace in bodystructure list:
  https://github.com/whiteout-io/imap-handler/pull/8

Fixes we had made locally and upstreamed but not taken via the release process:
- NIL delimiters for LIST https://github.com/whiteout-io/browserbox/pull/27 and
  LSUB https://github.com/whiteout-io/browserbox/pull/29 (discovered while
  investigating bug 1091295 and bug 1084216)
checkpoint; including probe refactoring for UIDNEXT changes
Bug 1093467 - Servers that don't support UIDNEXT
Bug 1100694 - [email/IMAP] Handle missing timezone for INTERNALDATE date-time, as generated by netc.fr / net-c.com
Bug 1101982 - If IMAP and SMTP fail, use IMAP's error.

Without this patch if SMTP rejects first, we'll use SMTP's error code
even though we meant to use incoming's.  This is consistent with us
reporting the incoming server as the one having the problem.
Bug 1101982 - Return 'bad-user-or-pass' for SMTP gmail app-specific pw failure

We removed specific error support for gmail's account-specific password
error since we always want to be using OAuth2 anyways.  However, we should
return something better than 'unknown' as a result.  (And in retrospect
maybe we shouldn't have removed our existing error handling.)