Add split convenience function to utility namespace.
Modularize traits.
Add convenience overload.
Make vector serialization allocator-oblivious.
Provide shortcut for stack-based vector.
Rename tag_type to tag.
Add missing include.
Add generic dispatching function.
Add serialization for variant and flat_set.
Add enum serialization code.
Rework serialization layer.
Hoist CAF's type list implementation.
Improve argument forwarding in universal constructor.
Rewrite tuple utilities.

We rename for_each to static_for_each to emphasize the statically unrolled
loop. The new function apply applyies a n-ary function over a tuple of
dimension n.
Add starts_with and ends_with string utilities.
Fix potential linker error.
Fix potential memory leak.
Make none parseable and printable.
Add noexcept to recursive wrapper.
Teach unit tests to work with expected failures.

The new macro FAIL is almost the same as CHECK, except that it registers a
failure as expected, and thus does not influence the exit status of the test.