Before this patch, function pointers would be emitted with the R_AVR_16
relocation. This relocation is correct for global addresses but not for
function addresses. Function pointers must use the relocation
R_AVR_16_PM.
This patch hopefully fixes this. I'm not entirely sure whether the patch
is entirely correct, but it does fix a number of cases (see the test
file).