Fix site/user config under parsec

Bug: if a host listed in site or user config files does not explicitly define a host item, that item will get the value None, whereas it should default to the intended localhost value.  Under configobj I had to define distinct 'localhost' and '__many__' sections, then override any unset non-localhost items after parsing.  On converting to parsec I broke the final override bit by using dense host structures (with defaults added) instead of sparse ones (just what's in the file).  Anyhow, under parsec we can simply have all host items default to localhost values from the outset, then create a 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. Which will break all job submissions to bob.   On this branch, run dire etc. are as expected for both hosts.