curllib: add basic SASL XOAUTH2 support

Adds the ability to specify an XOAUTH2 bearer token [RFC6750] via
the option CURLOPT_XOAUTH2_BEARER for authentication using RFC6749
"OAuth 2.0 Authorization Framework".

The Bearer token is expected to be valid for the user specified in
conn->user. If CURLOPT_XOAUTH2_BEARER is defined and the connec-
tion has an advertised auth mechanism of "XOAUTH2", the user and
access token are formatted as a base64 encoded string and sent to
the server as "AUTH XOAUTH2 <bearer token>".

The generated base64 encoded token contains:
"user=<username>^Aauth=Bearer <bearer token>^A^A"
curllib IMAP: add basic SASL XOAUTH2 support to IMAP

Adds the ability to use an XOAUTH2 bearer token [RFC6750] with
IMAP for authentication using RFC6749 "OAuth 2.0 Authorization
Framework".

The Bearer token is expected to be valid for the user specified in
conn->user. If CURLOPT_XOAUTH2_BEARER is defined and the connec-
tion has an advertised auth mechanism of "XOAUTH2", the user and
access token are formatted as a base64 encoded string and sent to
the server as "A01 AUTHENTICATE XOAUTH2 <bearer token>".

The base64 encoded token passed in the AUTH command contains:
"user=<username>^Aauth=Bearer <bearer token>^A^A"
curllib SMTP: add basic SASL XOAUTH2 support to SMTP

Adds the ability to use an XOAUTH2 bearer token [RFC6750] with
IMAP for authentication using RFC6749 "OAuth 2.0 Authorization
Framework".

The Bearer token is expected to be valid for the user specified in
conn->user. If CURLOPT_XOAUTH2_BEARER is defined and the connec-
tion has an advertised auth mechanism of "XOAUTH2", the user and
access token are formatted as a base64 encoded string and sent to
the server as "AUTH XOAUTH2 <bearer token>".

The base64 encoded token passed in the AUTH command contains:
"user=<username>^Aauth=Bearer <bearer token>^A^A"
curl binary: add basic SASL XOAUTH2 support to binary

Adds the ability to specify an XOAUTH2 bearer token [RFC6750] via
the option --bearer for authentication using RFC6749 "OAuth 2.0
Authorization Framework".

example usage:
  curl --url "imaps://imap.gmail.com:993/INBOX/;UID=1" --ssl-reqd
  --bearer ya29.AHES6Z...OMfsHYI --user username@domain.tld
curl help: add --bearer option to help

Adds the option --bearer to the options output