lib/fanout: Protect against destructors calling fanout_remove()

If a destructor called by fanout_destroy() in turn calls
fanout_remove() to remove the entry currently being destroyed, we
would previously crash out on a double-free() of the entry we
were destroying.

That's bad. This patch prevents that, letting users shoot themselves
in the foot as much as they like. It does make it impossible for a
destructor to locate information in the table though, but since we
can't switch to a readonly state anyway, we simply ignore that.

Signed-off-by: Andreas Ericsson <ae@op5.se>