Added folding regions using navigation information and refactored Parsing.

Also refactored the use of TriggerParse.  The parsing of source files
is already done on a queue using Tasks<T> in Xamarin studio, so we just
need to get the errors returned from the language service as soon as we
can rather than relying on the agent calling itself to get the results.
 This also avoids using a separate thread UI thread to add the
errors/warnings which is not necessary. Parsing is not required to
operate on the UI thread.  Another side effect is the code is simpler
to follow and slightly faster to return the first results.