add unittest2 to the requirements
place requirements into a separate file
rework travis yml matrix to fix the failure to built in python 3
fix travis.yml
more typos
more cleanup