Break Invoke, TypeConstant out of type_traits.

They're still included indirectly for compatibility.
type_list: compile time lists of types.
bits.h: integer bit manipulation operations.
type_traits: remove size-based type selection.

This should move into a separate header.  Since I'm not actually using
this anymore, now seems like a reasonable time.
data/crc32: make tablegen more flexible.

This prepares for clients being able to select the lookup table size.
data/crc32: factor table out of cc file.

Clients can now instantiate the table directly if they want a special
size.  I'm inclined to still provide a build-time option to control
the size of the table behind etl::data::crc32, but I haven't done that
here.