Split types and traits.

    They used to live in the same hash table in the symtab. This
    was a bug. Now, they no longer live in the same hash table,
    but they do live in the same namespace; ie, var foo : bar::bar
    will not compile, since 'bar' can't be both a type and a trait.