Print more info from Jinja2 exception.
#1200: fix startup_task:finish dependency
This fixes removing a task via a reload.

It adds a test and a fix.
Merge pull request #1207 from benfitzpatrick/1200.back-comp-startup-or

Fix startup_task:finish dependency
Addressed review feedback.
Briefer comment.
Merge pull request #1208 from benfitzpatrick/fix-reload-remove-task

This fixes removing a task via a `cylc reload`.
Merge pull request #1205 from hjoliver/1203.better-Jinja2-errors

Print more info from Jinja2 exceptions
Refactor task proxy

Remove task proxy class generation logic. Move `cylc.task_types.task` module to
`cylc.task_proxy` and rename the `task` class as `TaskProxy`. Each task proxy
is no longer its own class, but they all belong to the `TaskProxy` class.

Allow `-`, `+`, `%`, and `@` characters as task names.

Simplify logic in various places.

Reduce memory footprint.

More pep8 and pylint fixes.
Modify `.ident` to `.identify`