utility: add swap.

etl::swap mirrors both C++11 std::swap variants.
type_traits: add SizeOf, AlignOf.

sizeof and alignof are operators, not templates, and cannot be used in
contexts where a template metafunction is required.

SizeOf and AlignOf fix this.
type_list: improve searching and inspection.