Take snapshots individually if necessary

Some zfs versions don't allow multiple snapshots to be made in a single
invocation. Test if this is the case (currently the only means I know of
is scraping the usage note), and create all necessary snapshots in
separate invocations if necessary.

This will produce a warning, since snapshot creation is not an atomic
operation in this case.
Use ": $((arithmetic))" rather than "((arithmetic))"

Since bash 4.1, arithmetic expressions of the form ((something)) will
trigger 'set -e' to abort if the result of the expression is zero.

This was causing the script to abort whenever the result of expressions
like ((DEPTH++)) was zero. In this specific case, using ((++DEPTH))
would have worked around it, but : $((DEPTH++)) is the standard way to
ignore the value of the expression, so is the better solution even
though it looks a little unusual.