Dump information using JSON (in preparation for patching unsupported files in Android GUI
jflte: AOKP should be SOKP
Consolidate all command line programs

- Completely rewritten command line interface
- Full support for everything the GUI supports (eg. patching
  unsupported files)
- Removed old scripts in useful/
- Support for automated (non-interactive) patching
Catch exceptions when modifying the ramdisk

The ramdisk scripts don't do any error checking (which for 99% of the
time is fine), but with the new multi-device support, choosing the
wrong device would likely make it crash.
PyQt5 GUI: Add multiple device support
Remove default device from configuration file
README.md: Update for new build system
makedist.py,index.py: Fixes for multiple device support
makedist.py: Gradle may not complete in the default 30 second timeout if none of the downloads have been cached