Support multiple configs and make template params self documenting.

Template configs are self documenting and can be seen with `hod_pbs.py --help-templates`

Users can also specify multiple configs. e.g. `hod_pbs.py --config dir1/hod.conf,dir2/hod.conf`. This will merge the configs with the following rules:

1: Strings from the second config override the first one.

2. Lists (e.g. `service=taskrunner.conf,resourcemanager.conf`) will get concatenated so users can specify extra services, modules, env vars and the like.

3. Dicts are merged using a deep merging algorithm.
None of the underlying code has return codes (this is using a lot of the original code). Thus it depends on exceptions for errors.