Use version ranges rather than exact versions in setup.py

Libraries should never specify exact requirements because other versions might be needed by the project or its dependencies.