Simplify Property type hierarchy.

With property key IDs being int, we can store the id in the root of the hierarchy
and still maintain the same (minimal) object size overhead. This allows us to
remove a few types from the hierarchy.