Add Python version

Johan,

here is a first draft of the Python version.
I took the source code from another repository (I mention it in the file). Is that OK?
I wrote the 3 first unit tests but don't get the 4th one about random-backstage. What is the idea of this last one? This is random but with deterministic behavior?

Hope this helps,
Laurent