Add support for uploading APK expansion files.

Should cover most cases, but may not be satisfactory for people who upload
multiple APKs and want to be use completely separate main/patch expansion files
per versionCode, as opposed to reusing the same expansion files for all APKs.

Unfortunately for those people, we can't be any smarter about automatically
re-using old expansion files because the Google Play publishing API is awful and
gives us virtually no information about existing APKs. Otherwise we could maybe
have done something like automatically associating older expansion files with
newly-uploaded APKs if the minSdkVersion value of both APKs match.

The API is also entirely unhelpful in associating older expansion files with
newly-uploaded APKs; we have to trawl through everything ourselves, whereas a
"re-use previous expansion files" flag — pretty much like the web UI does —
would have been helpful.
Split out the APK UploadTask class to its own file.