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.