super1: update data_size when performing "revert-reshape".

The "data_size" is with respect to "data_offset".  When the kernel
changes "data_offset" it modifies "data_size" to match - see
md_finish_reshape() in the kernel.

So when mdadm switches the data_offset for the new data_offset, it
must update data_size correspondingly.

Signed-off-by: NeilBrown <neilb@suse.de>
Grow: don't hold array open while waiting for reshape.

If we will need to change array level when a reshape completes, a copy
of mdadm waits in the background.
Currently this copy hold the device (/dev/mdX) open.  This prevents
the array from being stopped.

So close the file descriptor and re-open after the reshape completes.

Signed-off-by: NeilBrown <neilb@suse.de>
super0/1: fix typo in error messages.

Signed-off-by: NeilBrown <neilb@suse.de>
Improve revert tests

1/ perform revert-grow on more metadata versions
2/ add revert-inplace.

Signed-off-by: NeilBrown <neilb@suse.de>
Manage: fix typo in error for "--with" handling

Signed-off-by: NeilBrown <neilb@suse.de>
Add test for --replace handling.

Signed-off-by: NeilBrown <neilb@suse.de>