Restore support for job-specific username, password, repository details.

This change follows on from the 'paychex' change and restores the per-job configurations of username, password and repository URL which were removed by that change.

The defaulting works by allowing individual jobs to specify their own configuration values, but if not provided, it falls back dynamically to the current global configuration.  Note that it does not _copy_ the global configuration at job-creation time, but does live defaulting.  This is important as it allows the global configuration to be changed _after_ jobs have been created, and to have that configuration flow through to those jobs without their own specific values.

I also DRYed up the code that performed NODE_NAME and JOB_NAME replacement in the workspace, and changed it to use Jenkins' normal environment replacement so that it'll handle all variables, not just those two.

I added/restored unit tests for all the above code changes, and ensured there's help for all of them.