estates: reuse same estate for extra_undefined()
Using the same state here save a little memory. It lets us merge two
undefined states and get the same state as a result so that simplifies
the debugging output a bit and makes the ->possible list shorter.
The problem is when the estate_undefined, has a related list then we need
to make a copy of that. So I had to introduce set_related() to handle
that.
It's not a perfect situation. Really I would prefer to reuse estates as
much as possible. So this is only a step in that direction.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>