Refactored to reduce reliance on XProcRuntime

Refactored XProcConfiguration.showVersion
Fixed two potential NullPointerExceptions
Removed dependency on XProcRuntime from errorMessage()

Copied parse() method from XProcRuntime
Removed the rest of the class-wide dependencies on XProcRuntime

Changed lifetime of XProcRuntime from class-wide to only within
run(UserArgs, XProcConfiguration) method. This allows the Main object to
be reused safely for multiple pipeline runs.
Fixed state so that two-arg run() is still a valid entry point

Unfortunately, the changes in this branch so far have just created new
state problems with XProcConfiguration.  The goal was to make a
Main.run() that could safely be reused for multiple pipeline calls, as
compared to the one-shot that Main is today.  Not sure this is taking
me in the right direction....