Fixes #254 - Clean up source tree to enable running unit tests at build

 Fixes #254

 * Source tree separated out into subprojects:
    * azkaban-common
    * azkaban-execserver
    * azkaban-webserver
    * azkaban-migration
    * azkaban-sql
    * azkaban-soloserver
 * Circular dependencies among subprojects have been cleaned up and removed.
 * Unit tests have been moved under the */src/test/ directories of appropriate subprojects so that tests are run at build time.
 * Unit tests broken by the move, such as those that still look for files under /unit are disabled for now and will be fixed in a separate task.
    * azkaban-common: 47 tests passing, 37 tests skipped
    * azkaban-execserver: 8 tests passing, 36 tests skipped
 * Build script has been cleaned up to adhere more closely to proper Gradle conventions.
 * Minor cleanup of some source files and adding more missing file headers
 * Get .travis.yml to run unit tests

Changes in following branch: https://github.com/davidzchen/azkaban2/tree/restructure
Ordering by group ID (which I assume is the first part (e.g.: org.apache.commons)) seems like the better approach (visually, it's much easier to parse).