clang-format wraps object literal keys in an object literal if they are
marked as TT_SelectorNames and/or the colon is marked as
TT_DictLiteral. Previously, clang-format would accidentally work
because colons in type aliases were marked as TT_DictLiteral. r310367
fixed this to assing TT_JsTypeColon, which broke wrapping in certain
situations. However the root cause was that clang-format incorrectly
didn't skip questionmarks when detecting selector name.
This change fixes both locations to (1) assign TT_SelectorName and (2)
treat TT_JsTypeColon like TT_DictLiteral.
Previously:
type X = { a: string, b?: string, };
Now:
type X = { a: string, b?: string, };