Issue 3559: Use From or ReplyTo hostname in Message-ID if available.

I wrote this fix to avoid obviously specifying that I am using a mobile device
to reply to an email.

Others want this for ease of filtering messages from their host by Message-ID.
Issue 4690: Add privacy pref to omit K-9 User-Agent header.
Issue 6372: Add preference for setting timezone to UTC.

This is a privacy preference to avoid leaking your current location while
replying to email.
Fixes for cketti's code review on pull req #472

Leave the hostname == null checks so we can fall back if a hostname is not
found. Also convert message-id to upper case to match Apple Mail (for
privacy).
Merge pull request #472 from mikeperry-tor/improve-header-privacy

Improve header privacy (Issues 6372, 3559, and 4690)
Use latest Gradle Android plugin and build tools
Fix 'testsOnJVM' Gradle task
Remove ActionBarSherlock
Updated Japanese translation of the changelog.
Merge pull request #476 from k9mail/remove_actionbarsherlock

Remove ActionBarSherlock
Merge branch 'master' into tls-client-cert-auth

Conflicts:
	src/com/fsck/k9/fragment/ConfirmationDialogFragment.java
Fixes needed after merging in master

Also, fix unit tests.
Clean up indentation

White space changes only.
Rework validateFields() and updateViewFromAuthType()

Previously, it was possible to have "Require sign-in" unchecked and a
"Security = None" setting for the outgoing server and still not be able to
tap "Next" because of a hidden (and irrelevant) "Authentication = Client
certificate" setting.

Check that the user has actually chosen a client certificate in
AccountSetupOutgoing.validateFields().

Also, there's no need to clear the password and certificate fields when
hiding them.  The user may accidentally change settings and want to change
them back without wiping out the existing settings.
Notify user of invalid account-setup settings combo

Specifically, warn and block them when attempting to configure Client
Certificate Authentication in combination with Connection Security = None.

If this were not made obvious to the user, they might not understand why
they are not permitted to tap "Next".

Also, move the initialization of all view listeners out of onCreate() into
initializeViewListeners() which is then called near the end of onCreate(),
helping to assure that the listeners won't be triggered during the
initialization of views inside onCreate().
Reorganize the server setup layouts

This only changes the vertical display order of the widgets.

The user will likely review the settings from top to bottom, but
the way they were previously arranged, settings lower on the list
were affecting things higher on the list.

Generally show top to bottom:
Server
security type
port (affected by security type above)
require login checkbox (SMTP only, affects everything below)
user
auth. type (affected by security type above, affects everything below)
password (affected by auth. type above)
client cert (affected by auth. type above)
Refactor KeyChainKeyManager()'s sClientCertificateReferenceWorkaround

The referenced issue states that it is only applicable to Android < 4.2
(testing confirms the problem on 4.1.2, but not on 4.2.2).

A test was added for the version code, primarily as a finder's aid for a
day when K-9 Mail no longer supports Android < 4.2 and the work-around can
be removed.

The referenced issue also states that it is only necessary to hold a
reference to the first PrivateKey retrieved. (Testing indicates that the
problem is avoided so long at least one reference is always maintained to
a PrivateKey -- it doesn't actually need to be a continuous reference to
the first PrivateKey.)

From my understanding, a normal class loader never unloads a class, so the
static reference can be safely kept privately in KeyChainKeyManager.
Import/Export client certificate alias setting
Avoid NPE on export

Occurs when the SMTP server doesn't require authentication
(authenticationType == null).

The javadoc for ServerSettings says that both authenticationType and
connectionSecurity may be null.
Fix so WebDAV does not have STARTTLS auth. type option