Implement ReceivePorts using an external semaphore
Remove unsafeFold

It doesn't seem useful to me anymore,  and it can be implemented using
the public interface anyway.
Bump version; update CHANGES
Minor optimizations