Adding version 4, potential for the uncontended case.
Merge pull request #1 from viktorklang/master

Adding v4, seems to have potential for the uncontended case (correctness not 100% verified, it's 2am here)