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 )
unit test for type sugar
Merge pull request #4 from addthis/type-sugar

for abstract types, allow alt. type declaration