Added parens. Causing error in Python3.
Fixed write-mode. Brokenn in PYthon3.
Use StringIO instead of appends.
We now detect supported VCSs (no static list).
Fixed unicode/bytes/str problems.

Implemented context-manager (with) statements for every open().
Generalized git-specific code.
Removed redundant injections of VCS-specific code.
Bug fixes from PR.

https://github.com/warner/python-versioneer/pull/28

- Moved vcs_function up in scope.
- Thinned code within try blocks.
- Removed to-do.
- Removed unnecessary slash.
- Re-added necessary but redundant injections.
We now use os.sep instead of a literal.
small cleanups
VCS generalization and efficiency refactors

Merge branch 'pr29'