A lot of refactoring

Bit step in the process of making the DartCode object more smart (be
able to get paths from it).
Documentation is a mess right now.
But the scanner_usage_example.dart works so better to commit. :)