Gradual construction of strings via the growing mempool interface was still
too complicated, so I have introduced a new primitive for this case and also
modified mp_end() to return a pointer to the beginning of the just closed
block (which gets optimized out if unused). This allows to write: