for abstract types, allow alt. type declaration

this lets { type:ham, cheese:yellow } style sandwiches (objects)
be declared like { ham : { cheese : yellow } }

this can be nice in some cases, but it particularly shines when
combined with alt. json syntax ( eg. hocon )

here is a simple hydra job that uses this sugar + hocon:

```
type=map

source.empty.maxPackets=100000

map {
    filterOut.map.fields=[
        { from=counter,  filter.count.format="0000000" }
        { from=DATE_YMD, filter.time-range { offsetDays=-1, now=true, format=YYMMdd }}
    ]
}

output.tree {
    root.path=TREE
    paths.TREE=[
        { const.value=empty }
    ]
}
```

and the same without this sugar allowance:
```
type=map

source.type=empty
source.maxPackets=100000

map {
    filterOut.op=map
    filterOut.fields=[
            { from=counter, filter { op=count, format="0000000" } }
            { from=DATE_YMD, filter { op=time-range
                                        offsetDays=-1
                                        now=true
                                        format=YYMMdd }}
    ]
}

output.type=tree
output {
    root.path=TREE
    paths.TREE=[
            { type=const, value=empty }
    ]
}
```