Allow NULL pointers to be passed to strfree()

This is a hack that is needed for now because of tsd_exit(). When Linux
gains thread local storage infrastructure to avoid the need for
tsd_exit(), we can remove this hack and disallow NULL pointers to
strfree().

This is necessary to permit tsd_exit() to work.

Signed-off-by: Richard Yao <ryao@gentoo.org>
Fix constructor/destructor calls

This has a few benefits. first, it fixes a regression that occurred in
splat's slab_reap and slab_age tests. Second, it makes porting code from
Illumos to ZFSOnLinux easier. Third, it has the side effect of
making reclaim from slab caches that specify reclaim functions an order
of magnitude faster. The splat slab_reap test usually took 30 to 40
seconds. With this change, it takes 3 to 4.

Signed-off-by: Richard Yao <ryao@gentoo.org>
Remove kmem_alloc_node interface

This interface has no external consumers and does not exist on Solaris.
Lets remove it.

Signed-off-by: Richard Yao <ryao@gentoo.org>