rand/noise.c (noise_devrandom): Refactor internals.
The objective is to make adding new ways of collecting high-quality
system entropy easier.
* Add labels for success and exit, to make sure that whatever we add
whatever's in the buffer to the pool, and then clear out the buffer.
* Initialize `fd' to `-1' at the top, and close it on the way out to
make sure it doesn't leak.
* Change the main `open' condition to allow something to have opened the
right file already.
This shouldn't change any observable behaviour, but it will make things
easier in future.