type_traits: rework size-based type selection.
type_traits: rework size-based type selection.

Whenever possible I'm trying to use C++11-style template aliases,
rather than the C++03-style "::type" members.  It keeps clients from
repeating the word 'typename' like a mantra.

It appears that I have no uses of these templates in my codebase, ever
since I started letting the compiler determine integer widths.  So this
is a great opportunity to fix their shape.

cbiffle/etl,cbiffle/etl,cbiffle/etl