buf_size: store ranges in the database instead of single values
Instead of saving a single value then save a range_list.
Part of the complication with doing this was that match_array_assignment()
and match_alloc() were over-writting each other. I introduced a hash
table with the allocation functions so that if we assigned one of them then
it would only use match_alloc() and not match_array_assignment(). The
difference is that match_alloc() handle kcalloc() and friends correctly.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>