WIP: Add ability to navigate symbols

I'm adding a basic .tmPreferences file to help ST index symbols in
Dart source code. The indexing won't work right now because the
symbol patterns are limited to scopes that do not yet exist in the
syntax file. These should be defined.

Navigating Dart source code would better be implemented as in the
Dart editor by using the same source code analyzer, but I don't
think that's still possible or easy to do, so this basic
implementation seems like a valid start point.
Modify Dart.tmLanguage to enable symbol navigation

With this commit, it should now be possible to navigate to typedefs
and classes (as defined in Symbol List.tmPreferences). The syntax
file now defines additional scopes needed to locate symbols in
Dart source code.

Things to note about Sublime Text symbol navigation:

It appears that the `class` symbol is automatically detected by ST
and, what's more, the transformation for it defined in the
Symbol List.tmPreferences files seems to be ignored. That's why
I've commented it out until I figure out what's going on. It may
be that some rogue .tmPreferences file is overriding Dart's symbol
list.
move .tmPreferences file to Support/
Add plugin logger

While trying to figure out a problem on Windows with dartlint.py,
I was missing a basic log from the plugin, so I've added one.

The PluginLogger class in __init__.py can be used to log messages
from .py files in this package.

The logging level is controlled via a `dart_log_level` settings that
defaults to `error` and can be changed at any time using
Packages/User/Preferences.sublime-settings.
BUGFIX: Add missing import; OTHER: Add basic logging

TimeoutException was used but not imported, causing an error.

I've also added some log messages using PluginLogger.
Undo wrong change to string
Change name to follow Python/ST naming conventions
Merge pull request #70 from guillermooo/logger

Add basic plugin logger
Refactor

* Abstract some checks away into properties
* Rename functions according to Python/ST conventions
* Rearrange event handlers so they exit early if possible
Add support functions
Add tests for support functions

Tests should be run using the UnitTesting package available through
Package Control.

This isn't strictly a requirement, but it's the easiest way of
running the tests now.
Merge pull request #71 from guillermooo/refactor

Refactor
Merge pull request #64 from guillermooo/symbols

Add ability to navigate to 'typedef' and 'class' symbols
Edit README
Merge pull request #72 from guillermooo/readme

Edit README