1. Change dependency tracking from API version on unit to just unit last modified time.
2. Track sets of top-level and all declared symbols in units, recompile in case of possible conflict.
3. Track units with TypeErrorCode.CANNOT_BE_RESOLVED, recompile if any unit changes top-level symbols.
4. Better tests with source code directly in test method.
R=zundel@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9148026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3799 260f80e4-7a28-3924-810f-c04153c831b5