Build system and library changes (Gradle / Subtree merging)

This branch moves the build system over to Gradle. Differences from the other pull request for this are:

  - Linting is turned on and only specific errors which need to be ignored by this project are
  - Proguard is used to compress release builds
  - Submodules have been removed in favor of Maven repos / Subtree merges (makes it easier to keep track of customized dependencies)

Fixes #579