In order to provide consistent output in the plugin log,
each source processor needs to be able to provide a custom
parser for external command output. This has now been
implemented by moving the `parse_source_context` code out
of exec.vala and into processor.vala as a virtual method.

Most processors can stick with the default implementation,
but where needed, a new implementation can be implemented
by each processor individually. An example of this is
`go vet`. Its output differs when it runs into a parse error.

In addition, we apply some refactoring and simplifications.
Some lambda expressions have been removed and replaced with
direct method references. These are funcitonally the same
and save us some indirection.

Signed-off-by: Jim Teeuwen <jimteeuwen@gmail.com>