even more serializer optimizations. this breaks the serialization format.

ref #7893

- remove unnecessary extra serialization of length(x.names)
- UTF16String and UTF32String now have compact type tags
- don't serialize () for types with no parameters