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 ignored
  - 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

Before merging, it's probably a good idea to run `git submodule deinit libs/submodule` on all the submodules (git's a pain this way). If it still gives you trouble, remove them from the index: `git rm --cached libs/submodule`