Starting refactoring of DescribingMatcher to BugChecker
Merge branch 'master' into RefactorBugPatterns
Started fixing SelfAssignment in variable declaration
Merge branch 'master' into RefactorBugPatterns
Added BugChecker abstract class and started converting existing bug checkers over to use it
compatibility with IDEA 12.1.4
don't load ErrorProneCompiler in IDE main process, because IDE could be started with java6, and error-prone requires java7
Merge remote-tracking branch 'origin/master' into RefactorBugPatterns

Conflicts:
	core/src/test/java/com/google/errorprone/bugpatterns/ArrayEqualsTest.java
	core/src/test/java/com/google/errorprone/bugpatterns/ArrayToStringTest.java
	core/src/test/java/com/google/errorprone/bugpatterns/SelfAssignmentTest.java
More refactoring based on what Eddie started. Highlights:
- Almost no checks implement their own Scanner
- DescribingMatcher class deleted
- Checks can implement more than one kind of matcher
- Use a sentinel value rather than null for "no match"
- Still construct efficient lists for executing checks against tree nodes based on the type of node
All tests passing, and this feels nearly ready to merge to trunk. Big question is the proper resolution of the diverged SelfAssignment and SelfAssignmentChecker.
Merge https://code.google.com/r/sergeysimonchik-error-prone
Got the idea-plugin working again. Tweak the messaging that shows up in the UI.
Add missing file.
Move new Matchers to inner classes of BugChecker, since they go together. Also fix some matchers which weren't static, and were hard to read the condition due to negation.
Revert my partial merge of SelfAssignment{,Checker} and re-perform the refactoring. Still need to merge these two manually.
Merge branch 'RefactorBugPatterns'
Fix remaining cases where it was necessary to create a scanner specifically inside a BugChecker. This also makes it easier to create custom BugCheckers in private codebases.