Fix site config under parsec

Bug: if a host was listed in site or user config files but did not explicitly define a host config item, that item would get the value None, whereas it should default to the intended localhost value.  Under config obj I had to define distinct 'localhost' and '__many__' sections, then override unset host items using localhost values after the fact. On converting to parsec I had not implemented this last bit.  However, under parsec we can simply have all host items default to localhost values from the outset, then create the compulsory localhost section, if necessary, after parsing the files.  (which is what this branch does).

E.g. for this site file:
```
[hosts]
    [[bob]]
        # no items defined
```

On current master ```cylc get-global-config --print``` shows localhost's run dir etc. as expected, but bob's None.  On this branch, both are as expected.