Clean up and modernize USType a bit
Cut down on the generation of pointless empty methods
Extract more heavily duplicated code
Use a single lookup table for each enum type