If we are waiting for only one edge, print status for that edge

With this patch, should the build stall, it should be clear what edge is responsible.

The patch introduces BuildStatus::last_edge_status_ to keep track of the last edge we printed status for. This is to avoid printing status for the same edge twice, which is mainly when the output doesn’t overwrite previously printed output (non-smart terminal).

It would be better to delay re-printing status until we have waited a certain amount of time, which would also allow us to handle the case where more than one edge is stalling the build, but this require some refactoring, as waiting for tasks is presently done without the ability to specify a timeout.