fill() is not atomic

When fill fails, because max_sites is reached or because the shape function raises an exception (this happens in attach_lead() when the scattering region does not interrupt the central builder), the graph of the target builder is in an inconsistent state and is currently erased.

fill should be atomic: either it suceeds, or it leaves self untouched.