Improved versioning using git tags

This is a suggestion for a more rigorous versioning scheme for forcebalance.

This implements a more sophisticated forcebalance versioning mechanism that uses git tags to mark forcebalance released. setup.py would use the "git difference" command to check what revision of forcebalance is being installed, or use a version number written to a .__version__ file if not working in a git repository. 

For example, for a 1.2 release you could do
`git tag -a v1.2.0 -m "ForceBalance 1.2 release"
 git push --tag`
to create a tag at that commit marking the release. Any runs of the setup.py script will use that tag as the base version. 
`git difference`
provides a string with the most recent tag followed by the number of commits since then. This allows tracking versions on the level of individual commits. For example, "v1.2.0-3" would indicate the version of forcebalance 3 commits after the v1.2.0 tag

The only downside is that we need to add another file .__version__ to store a persistent version number if the git tools are unavailable. Additionally, this file would need to be pushed along with whatever change is made. setup.py can stage it for commit but that means the version is only updated when setup.py is run. I think this happens frequently enough where its not an issue.