Further refactor to the batch systems logic

Decouple the task, job submit and job file modules.

Turn `JobFile` into a singleton. Move `cylc.job_submission.jobfile` module up a
level to become `cylc.job_file`. Use a single dict to pass information to the
`write` method for a much cleaner interface.

Rename `cylc.job_submission` package `cylc.batch_sys_handlers`. (It is no
longer just about job submission, but also other interaction with the batch
systems.)

Batch system handler classes are no longer sub-classes of `JobSubmit`. This
allows their interfaces to be much more flexible.

Rename `JobSubmit` to `BatchSysManager` and turn into a singleton. Manage
instances of batch system handlers (so there is no need to create new
instances unnecessarily). Move most batch systems related logic into this
class. Move `cylc.job_submission.job_submit` module up a level to become
`cylc.batch_sys_manager`.

Allow batch system handler classes to directly format the directives. This
allows each class to have full control of what goes into the job file.

Improve `at` submission command. Use STDIN to write command to `at now`.

Improve `pbs` handler logic. If a directive key contains a space character,
then use the equal sign as the assignment operator. If a directive key does not
contain a space character, use the space character as the assignment character.
Remove the poll output filter logic, as `qstat` already returns non-zero if the
job ID is supplied as an argument and it is no longer in the queue.

10/10 pylint scores for the job file and the batch system handler modules!
Improve logic and doc strings
Update test
Fix docs and comments
Deprecate runahead in gcylc.rc
Update syntax highlighting keywords.
Merge pull request #1183 from matthewrmshin/refactor-job-submit

Further refactor to the batch systems logic
Merge pull request #1197 from arjclark/deprecate_gcylc_runahead

Deprecate runahead in gcylc.rc
Merge pull request #1199 from benfitzpatrick/update-syntax-highlight-keywords

Update syntax highlighting keywords
Hot-fix gcylc.rc deprecation version number.