Update all the things!

Made project gradle structured
Various improvements to existing API methods
New API methods:
 - Get project as a zip
 - Stream any file from the domain (used for getting project zip)
 - Poll timer to listen for changes in projects
 - Get file and project log
 - Get python errors using lint