ZooniverseClient.uploadClassificationSync(): Throw UploadException.

ZooniverseClient.loginSync(): Also translate IOException from
writeParamsToHttpPost() to LoginException.
tests: ZooniverseClientTest: Avoid some copy/pasting of code.
tests: ZooniverseClientTest.testUploadWithFailure(): Fix.

Handle the UploadException.