Use full initializer for initrd_ctx to avoid fatal warnings with older GCC

struct ... foo = { 0, } is valid initializer, but older GCC emits
warning which is fatal error due to -Werror=missing-field-initializer.
So simply use full initializer to avoid these errors. This was fixed
probably in GCC 4.7.

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36750
Refine vdev-skipping logic

Skip a vdev in the !data->mounted case when a pool's guid has already
been determined and the vdev's pool guid doesn't match.

This fixes pool detection in a number of cases in which multiple pools
exist.  For example, previously if a system had a 3-disk raidz followed
by a single-disk pool, scanning of the 4th disk would cause the first
3-disk raidz pool to not be visible.
Add support for hole_birth

If the com.delphix:hole_birth feature flag is set, the birth txg is
stored in "hole" block pointers.  This patch updates the macros and the
gang block-reading code to support the feature.
Add support for embedded data

The embedded_feature allows for small highly-compressible object's data
to be stored in a block pointer rather than actually being pointed
to by the block pointer.  This patch also adds recognition of the
"embedded_dataset" feature.