Split the logic for finding worker files into a detail/ class.

As we extend the default worker factory to allow for custom parsing, we
need to simplify and externalize the support classes.
FactoryFileParser now allows custom parsing of the worker file format.

Now you can construct the default file based factory but use a custom file
format.
Extend what FactoryFileParser return value represents.

Rather than just having the return of parsing a file be
a workers requirements and path to the executable, we
now also contain extra command line and environment flags.
Merge pull request #178 from robertmaynard/extensible_file_factory

Extensible file factory