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

I know this is from the last CL, but thinking about it more, I think the parser should be very lenient towards errors. So, if `tab_width` isn't an int, or `tab_width` and `indent_size` aren't specified, we should just not report a value for tabwidth. Some other process will be responsible for displaying an error to the user at that file location.