factor out a requirements file
add a coverage configuration and update travis-ci build to use coveralls