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.
most of these files are copy/paste.
open an issue to also combine service conf files, and then factor out the common lines. like most of the `HADOOP_` parameters; eg the `Service` block can be written
```
[Service]
daemon=$$EBROOTHADOOP/bin-mapreduce1/hadoop-daemon.sh
ExecStart=%(daemon)s start $UnitName
ExecStop=%(daemon)s stop $UnitName
```
for a lot of the services