Raise NotEnoughSharesError if there are initially not enough shares for a mutable retrieve. refs #1742

We also change the order of setting up attributes in Retrieve so that _raise_notenoughshareserror() can be called from _setup_download.

Signed-off-by: Daira Hopwood <david-sarah@jacaranda.org>