Make zfshadow.sh handle child datasets

Previously zfshadow used the '-r' flag to handle child datasets. This
made it difficult to handle error states where, for example, a child
dataset failed to send but the parent was successful.

Now, each dataset, be it parent or child, is treated identically. A later
commit will make it so that failures can be correctly recovered from.