Split memory management

Some attempts to address #1079 -- just for discussion at this point.
@keithbostic, that has always been true of this code -- I do worry about it, but the only solution I have come up with is to have a central (locked) list that some thread scans periodically.