Improve allocator support in multi_array

Add support for stateful allocators.
Add support for C++11 minimal allocators.
Improve storage of allocator using the empty base class optimization.