Implement set_maximum_memory.
Add max memory parameter to ut-pipelining memory test helper.
Add max memory unit tests.
Use maximum fanout in merge sorter to compute a maximum memory requirement.
Change strict inequality to non-strict in binary search for fanout.
Reimplement memory assignment in phase.cpp.
Print memory assignment to debug log.
Set default max memory for nodes to maxint.
Print default maximum memory as "inf" rather than the value of maxint.
Refactor phase::assign_memory.
Refactor assign_memory, adding sum_assigned_memory.