Adding contexts and bug-fixes to editorconfig parsing.

@devoncarew - This addresses the comment on the last PR.  I'm doing it in a slightly different way than you suggested (by using Container and File contexts).  This allows the sections to not have to be re-filtered on every value retrieval.  I also fixed a couple of bugs and refactored the section parsing code into the constructor rather than a special method.

- Setup contexts for file and container to minimize the repeated passes on parsing and matching.
- Moved the initialization into constructor of context and provided a Future called whenReady rather than initializing in getSections()
- Fixed issue with chrome filesystem reporting two types of errors for no-file-found
- Fixed 2 bugs in Glob classes (incorrect end count causing missing slashes from regexes, and wrong matcher class for char-range pattern).
- Restored and fixed tests to use contexts.
- Added optimizations to Glob RegExps

You could avoid some of this error handling by just using the workspace API (instead of dropping down into the html5 filesystem). So, something like:
```
Future<ConfigFile> _getSections(Container container) {
  Resource file = container.getChild('.editorConfig');
  if (file is! File) {
    return new Future.value(null);
  } else {
    return file.getContents().then((contents) {
      ...
    }
  }
```