Api redesigned

instead of distutils setuptools used
Although dependencies are defined in setup.py added an extra reqs.txt
Tests organized and can be run by nosetest easily or run the tests.py file simply.