mm/zpool: zbud/zsmalloc implement zpool

Update zbud and zsmalloc to implement the zpool api.
mm: zpool: update zswap to use zpool

Change zswap to use the zpool api instead of directly using zbud.
Add a boot-time param to allow selecting which zpool implementation
to use, with zbud as the default.

Signed-off-by: Dan Streetman <ddstreet@ieee.org>
mm: prevent zbud/zsmalloc from unloading when used

Add try_module_get() to pool creation functions for zbud and zsmalloc,
and module_put() to pool destruction functions, since they now can be
modules used via zpool.  Without usage counting, they could be unloaded
while pool(s) were active, resulting in an oops.