Fix bug when a member is returned more than once

In the event that the same member pid was returned multiple times -- in
essence "double freed" -- the pool accounting became corrupted.

When handling returns, we now ignore members that are already in the
free state and log a warning message since this is very likely to be an
indication of a problem in the calling code. Members should only be
free'd once.