Really stop GCC from replacing printf() with puts().

This also works in C++ and with the llvm-gcc.
Create a standart KernelExports kext.
It looks like (some?) MacOSX 10.6.x "Snow Leopard" versions do not
understand the kext cascaded plugin mechanism.  This change allows me
to load the zfs.kext under 10.6.4
Prevent re-initialization of libzfs and libshare doing work on an not-yet-ready libzfs.

libshare_init() ws called as static initializer, and trying to access libzfs
running the libraries initialization function early.  Later libzfs would be
reinitialized from main() of the program using it.

This change disables the static initialization and replaces it with an
explicit call at the end of libzfs_init().  However, the whole libshare
and libzfs initeraction needs more thoughts.