Refactor delete code

Makes logic more linear. Drops zpool28fix support. Restores r and R
flags, but not to be passed directly to zfs_cmd. Instead, we mimic the
functionality.

Also, $rm_snapshot_pattern was dropped. Currently, this is less
efficient, but it does make it more clear, and all deletion goes
through the same path now. Caching (perhaps through an eval array)
could help performance if needed.
Drop '-r' and zpool28fix support from RmZfsSnapshot
Replace sed call with built-in string parsing.
Check if zpool/fs exists. Use zfs list -r for efficiency

-r will limit the scope to the target fs and its children rather than all
snapshots in all pools in all filesystems.