Added version file to hold version information.

- This file is loaded by __init__.py and setup.py to get version.
Fixed version path in setup.py to work everywhere.

- also removed use of `map` function in version.py
Removed use of map throughout the code

- Also cleaned a bit of dead code
setup.py can now be called from anywhere!