Fix xrange for Python 3

scalarmult_B is hot enough that it's probably best to stick with
xrange when in Python 2, so let's make 'xrange' work in Python 3.
Add the CC0 license to release ed25519.py into the public domain
Merge pull request #12 from gnprice/master

Fix xrange for Python 3
Fix urls
Merge pull request #13 from dstufft/license

Add the CC0 license to release ed25519.py into the public domain
Switch to extended coordinates

This makes things faster; about 39x faster for verification on my machine.

We pass to homogeneous coordinates and add an auxiliary coordinate, so
a point P = (x, y) is represented now as (X : Y : Z : T), where
x = X/Z, y = Y/Z, xy = T/Z.  The homogeneous coordinates allow us to
avoid any inversion in the Edwards addition, and the auxiliary
coordinate T saves another multiply or so.

Patch supplied by Mike Hamburg <mike@shiftleft.org> against upstream
ed25519.py.  He released his modifications into the public domain.
I rebased and added the short comment and this commit message.
Fix test for extended coordinates
Fix an essential assert

This is part of the verification, so it needs to be checked
always.  Reported by @dstufft.
Reduce d

This gets us another few percent.  Thanks to @swenson for
noticing that it was unreduced.
Make flake8 happy
Merge pull request #14 from gnprice/extended-coordinates

Switch to extended coordinates