Add fi_dupinfo

Fixes #246

Signed-off-by: Reese Faucette <rfaucett@cisco.com>
I still feel it is safer in the long run to maintain a common state-sensitive exit point, because someday someone will precede this code with:
```C
flop = calloc();
if (flop == NULL) {
   goto fail;      // with appropriate free in fail
}
```
and neglect to notice the "return" after malloc of dup, introducing a leak of flop in failure path.  
future proofing ftw....

compiler warning will remind them to set dup to NULL at start of function, and yes, you *could* say that also reminds them to check for return vs goto, but too implicit for me.

(I spent years fixing other peoples' bugs, so i try hard not to set up for future bugs :) )