The 1.6.3  release has dropped support for py2  but the release
is faulty and pip still picks it up for py2 , so cap to 1.6.2
when using py2.
With the introduction of the new dependency resolver in 20.3 pip the
lower-constraints job starts to fail as now the constraints are working
as they should. Multiple fixes needed:
* lower-constraints job uses the [testenv]install_command, so it gives
both the upper-constraints and lower-constraints, which causes the
job to fail. As an easy fix install_command is added to this target
without the upper constraints.
* duplicate stestr constraint removed
* cryptography lower constraint is bumped as with version 2.1 the
new resolver of pip takes hours to install the packages
* contradicting hacking version replaced (in lower-constraints.txt to
match with test-requirements.txt), which pulls in newer flake8, too
* lower-constraints test job failed with error message:
"[..] unexpected keyword argument 'barbican_endpoint_type'"
which is due to old version of castellan.