backend: backend_xenstore_handler should not block
backend: backend_xenstore_handler should not block

This is intended to be a callback and is widely called as such when the
watch fd is already reported as readable by select(2) or poll(2).

xs_check_watch documentation requires to loop until xs_check_watch has
returned all watches that fired:
> Callers should, after xs_fileno has become readable, repeatedly
> call xs_check_watch until it returns NULL and sets errno to EAGAIN.
> (If the fd became readable, xs_check_watch is allowed to make it no
> longer show up as readable even if future calls to xs_check_watch will
> return more watch events.)

This also attends a possible leak: If scanf failed, the array returned
by xs_read_watch() could have leaked.

Re-arrange the variable declarations in their block scope while at it.

Signed-off-by: Eric Chanudet <945795ca4030d561e78db98ba644d7fd3cee2cf0@ainfosec.com>

OpenXT/libxenbackend