Allow manual triggering of retrying tasks.
Don't override state dump ict on restart.

Addresses #481
Made initial and final cycle time persist over multiple restarts.
Initial hack at enabling future triggers.

Addresses #487; example in examples/future-trigger runs.
Removed misleading test suite title.
Added ungroup CLI option.
Tidy up.
Removed never-used dead_letter module.
Made simulation mode work with recent changes.
Merge branch 'master' into manual-trigger-retrying-tasks

Conflicts:
	lib/cylc/task_types/task.py
Print suite timings in test battery results.
Don't unset the job submit ID when a task is done.

This caused occasional failures in the events/task test suite: if a task
reported in succeeded while a poll command was in progress, the poll
result would set the task back to 'running', but the 'task succeeded'
message just prior to that had unset the submit ID thereby preventing
the next poll from correcting the problem.
Complete the test suite for dynamic host selection.

It was testing dynamic host selection by command, but not by environment
variable.
Fixed T-N cycle offset bug for n > 24 (HoursOfTheDay cycling)

Example:
[[[0]]]
    graph = "foo[T-36] = bar"
This graph results in bar triggering off foo at T-36; but it is also
used to infer that one of the valid cycle hours of foo is 0z minus 36,
or 18z. Conversion of T-N back to the 0-23 range was broken for N > 24
with the result that foo could sometimes spawn into the wrong cycle.
No change - to NOTE that previous commit message contains an error.

(replace 36 with 30 - this was just a typo in the commit message).
Much much much simpler spent-task clean-up algorithm.

This has been a long time coming. We can now (since cylc-3!) use
information in the suite graph to determine how long each task has to
remain in the task pool after succeeding.
Tidied and commented the new cleanup code.
Tidied one code snippet.
Tidied another code snippet.
Merge branch 'master' into 487.future-task-triggers