Allocation optimizations

Based on the great work by @bradfitz in #68 

I can see a small performance regression on my Windows system. But Windows is sometimes a bit uh.. strange and Go is more optimized for Linux systems.
Unfortunately I currently have no Linux system where I could properly test this.

So can you please provide benchmark results?
I'd like to see the results of this change on various systems.

Closes #68