Split memory management

Some attempts to address #1079 -- just for discussion at this point.
@michaelcahill, we calculate `child_total` in this function, but we never do anything with it.