db: fix ignoring wrong callers
We ignore callers if the prototypes don't match. This normally happens
with function pointers because there can be two (struct struct_name)->frob
pointers, but the parameters are different.
It should be ignoring after func_id != data->prev_func_id otherwise it's
looking at the wrong caller.
Then after handling the direct_callers we should to a merge of that tree.
Probably there aren't that many functions that have both direct and function
pointer callers so that's why I didn't notice this before.
Also there was a one merge where we should have been checking ignore before
doing the merge.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>