struct eval_ctx: add .ev_line_size; commands(): fix `ghost'..
I got some alert() messages from the string dope after `ghost'
expansion and it turned out that commands() calls evaluate() with
ev_line being set to the full buffer size, rather than the real
line size, leading to faulty much-too-large allocations for the
ghost expansion buffer; didn't cause problems because the
terminating zero would be part of the too-large-a-copy, but oops.
So introduce another storage for the buffer allocation size and
use it as a switch buffer with set.ev_line.l before callings
evaluate().