fix map literal parser

parse comma as separator
parse map type

    {key => value}
use decltype to make ctors simple
fix parsing object construction

{} in object construction should not be omitted.