Replaced configobj with custom config file parser: parsec.
Updated parsec readme file.
In upgrader, use spec not cfg to determine allowed items.

The upgrader deals with deprecated items that may not exist in the
sparse parsed config file.
Use proper spec for float list with multipliers, suite and site.
Added documentation to the parsec README file.
Handle empty values 'item = ' in config files.
Support non-pythonic boolean values in parsec.
Change allow_zeroes default for float list validation.

Also brings list multiplier expansion into the validate module, as it is
no longer used elsewhere in the code.
Merge branch 'master' into 562.nuke-configobj

Conflicts:
	lib/cylc/task_types/task.py
Added submit-retrying state to the gcylc cfgspec.
Allow test suites with no [runtime]
Merge branch 'master' into 562.nuke-configobj
Expunge all mention of configobj.
Removed an obsolete site config item from the spec.

Config file specs only need current item definitions.
A proper site/user config reference in the User Guide.

Translated from comments in the old configobj config spec file.
Adapt the submit command for parsec.
Use omitNone properly in print_cfg.
No need to apply runtime defaults inside the taskdef class.
Moved dictcopy functions into parsec.
Moved parsec cfg print into util module.