Catch illegal port file content, including an empty file.

and print a sensible error message instead of a traceback.
Allow use of [T] in internal output messages for non-cycling tasks.

In principle you don't need to use [T] as a cycle time placeholder for
non-cycling tasks (for which T is 1) but if you do it should work.
Corrected a comment.
Merge pull request #378 from hjoliver/catch-illegal-port-file-content

Catch illegal port file content, including an empty file.
Apply suicide triggers to all family members.
Merge pull request #383 from hjoliver/382-family-suicide

Apply suicide triggers to all family members.
Merge pull request #379 from hjoliver/async-task-internal-outputs

Allow use of [T] in internal output messages for non-cycling tasks.
Handle dynamic host selection by environment variables.
Updated documentation of dynamic host selection.
Handle failed host selection better.

If dynamic host selection by command or variable fails, task goes into
the failed state and can be re-triggered after reloading the corrected
suite definition.
Thread-safe job submission failure handling.

The task.submit() method executes in the job submission thread, so
failures should be signalled by returning None to the job submission
batcher, which sends a task message to be handled by the main thread.
Raise exception for invalid remote host.
Catch all remain job submission errors properly.
An error message adjustment.
Added an in-source comment.
Added another in-source comment.
Uber exception handling for the whole job submission process.
Merge pull request #385 from hjoliver/384-dynamic-host-variables

384 dynamic host variables
Added retry loop to threaded db ops.
While in right place