MemoryPoolAllocator, Stack: lazily allocate Allocators 

In order to make the constructors more efficient, especially in the context of C++11 move semantics, the (dynamic) allocations in `MemoryPoolAllocator` and `Stack` should be performed lazily.  

This pull-request moves the allocations to the first use of the allocator in both classes.
This way, the mere construction of such objects does not yet involve a memory allocation.

Additionally, the `Stack::ownAllocator` member has received its `_` suffix for consistency.