sstables: compaction: handle failure on read fiber
sstables: compaction: handle failure on read fiber

This assert (in write fiber) would fail if read fiber failed
because the variable done will not be set to true.
The use of assert is very bad, because it prevents scylla
from proceeding, which is possible.
To solve it, let's trigger an exception if done is not true.
We do have code that will wait for both read and write fibers,
and catch exceptions, if any.

Closes #523.

Signed-off-by: Raphael S. Carvalho <1e2942cea40e3b4d2162dfcd9e53e41c05a84d22@scylladb.com>

raphaelsc/scylla,scylladb/scylla,avikivity/scylla,duarten/scylla,raphaelsc/scylla,kjniemi/scylla,duarten/scylla,kjniemi/scylla,raphaelsc/scylla,scylladb/scylla,scylladb/scylla,avikivity/scylla,avikivity/scylla,duarten/scylla,kjniemi/scylla,scylladb/scylla