Do not trigger pants goal compile if there is no dirty files.

Testing Done:
Tests + manually.

Reviewed at https://rbcommons.com/s/twitter/r/1492/
Fixed artifact to build a jps and common jars
pants-common.jar to compiler plugin path
Update the IJ plugin to work with pants 0.0.26.

Kill use of the deprecated goal command.
Freshen a few 3rdparty tool versions in scripts.
Fixup .travis.yml and scripts/* flags.
Migrate pants.ini with the aid of the pants migrate_config tool.

Testing Done:
CI went green here: https://travis-ci.org/pantsbuild/intellij-pants-plugin/builds/44460772

Bugs closed: 33

Reviewed at https://rbcommons.com/s/twitter/r/1515/
set compile with intellij on reloading state.

without this, when a project refresh occurs, the intellij compile flag will be set back to the default(false), but without any of the toggle changes happening.

Testing Done:
open / closed / opened project saw that it kept the true value.

Reviewed at https://rbcommons.com/s/twitter/r/1499/
when traversing directories, always skip on files.

With the current impl, we'll do a native call to list files for a given file, which should be a noop, but it's not necessary since we only care about directories.
This change makes it so that consumers don't have to check if a file is a directory by ensuring they all are. It also prevents calls to list when the a file is a file and not a directory

Reviewed at https://rbcommons.com/s/twitter/r/1516/
Reverted removing 'goal' from command line arguments because not everybody updated pants to 0.0.26 version.
when modules with common content roots exist, use their source roots as content roots instead
create synthetic targets for common source roots and inject them into the project before creating idea modules

- do all common source root handling in ProjectInfo, rm lookup table for common src roots since it's no longer used
- rename tests in PantsResolverTest to reflect cases they test
address feedback

- use path comparison instead of length
- don't rm content roots after the fact, as it's not necessary
- pull out factory so it's only instantiated once
- add finals / annotations
- log errors if an unexpected source root is encountered
- don't do exclusion on resource sources, because they won't cause failed builds, and doing so causes runs to fail

- go back to using the computed source root for content / source roots
use warn / iterator.next instead of [0]