Split Uploader into multiple files. Move non-android code into a
separate module.

Tested:
  (with device or emulator connected)
  ./gradlew clean test connectedAndroidTest