Don't create folds when parsed document has errors

MonoDevelop will only update the folding regions when the parsed
document does not contain any errors.  So, we shouldn't create a
bunch of uncessary objects since they won't be used anyways.
Add new class: CacheManager

Refactor to separate responsibilities.  Completion extension no longer
manages cache of ParsedCobraDocument instances.
Dispose of StreamReader properly

Oooooooops!

This probably wasn't helping our memory issues...