update htab_init to take optional hash and compare funcs
update test