vinyl: make sure run file descriptor isn't closed while coeio is using it
vinyl: make sure run file descriptor isn't closed while coeio is using it

A run may be freed and hence its file descriptor closed by compaction
even if it is currently being read from by a coeio thread. At worst, the
descriptor may be reused for another file or even socket, resulting in
unexpected glitches. To avoid that, take a reference to the run before
issuing coeio_preadn() and only free it and close the file when the
reference drops down to 0.

mejedi/tarantool,mejedi/tarantool,mejedi/tarantool,rtsisyk/tarantool,rtsisyk/tarantool,rtsisyk/tarantool,mejedi/tarantool,rtsisyk/tarantool