add ArenaAllocator and two generic Container types
Add two 'arena allocators' -- adapted from short_alloc
by Howard Hinnant -- one which uses a non-movable arena (intended to be on the stack), and one which uses a moveable arena which is heap allocated (note: the arena itself is located inside the same allocation, and a dedicated 'handle' (which has a sizeof of a pointer) is used by the allocator.
In addition two Container types are used which use the moveable arena are introduced, one which models vector<tuple<T...>>
but which is implemented as tuple<vector<T>...>
where the vectors share the memory arena, and the other which treats the 'columns' completely independent, with all columns still sharing a single (movable) arena.
Edited by Gerhard Raven