Support stateful allocators in array
Implement set_maximum_memory.

Add node::set_maximum_memory, defaulting to maxint.

Reimplement memory assignment in graph.cpp.

Add maximum memory checks to the ut-pipelining memory tests.

Update pipelining sorter to set a maximum memory requirement.
Use item upper bound information in merge sorter.
Merge branch 'max_memory'. Closes #60.