Added new error to constants
Small fixes to e-mail features.

I did the debugging on the staging server, and found a few things that I didn't
do right on the first try. The code as it is now has been tested by hand, with
the API test script:

    echo "{'email': 'lucas.maystre@epfl.ch'}" | ./api.py -d POST /resetpw
    echo "{'email': 'bengiuliano@gmail.com', 'password': 'bloblo'}" | ./api.py \
        -d POST /users
    echo "{'email': 'bengiuliano@gmail.com'}" | ./api.py -d POST /resetpw
    ./api.py -m bengiuliano@gmail.com -p bloblo GET /
merge with groupSuggestion
FIX list_user_playlists retrieves only the non-local playlists

The bug was on the nullity check. (PllibEntry.local_id is None) and
(!PllibEntry.local_id) fails, only (PllibEntry.local_id == None) works.
Updates the computation of the distance/proximity and probabilistic selection

Previously, the computation wasn't totally right. In fact, the dot product was
made on non-normalized vectors. Thus, the result can be great than 1 or less
than -1. The case of a negative result wasn't also treated.
Now, the dot product result is normalized. And to cast the result in [0,1],
the mean is taken from the result added to 1.

The probability assigned to a track is now its proximity (in [0,1]), instead of
1 - distance.
Merge branch 'dev/solo' of https://github.com/lca4/unison-recsys into dev/solo