Version information for development installations

As noted in the past (#526, #503), it is desirable to be able to ask an end user to determine in a simple manner what version of SunPy they are running, specifically in the case where they are not running a straight release.  With this PR, we can ask the user to run `sunpy.util.system_info()` and see:
```
>>> sunpy.util.system_info()
...
SunPy: 0.3.1 (v0.3.1-128-ga4a1987)
...
```
or alternatively, have them print out `sunpy.version.git_description`:
```
>>> sunpy.version.git_description
'v0.3.1-128-ga4a1987'
```
In this example, the description says that the current commit is 128 commits ahead of the closest preceding tag, `v0.3.1`, and the SHA1 hash for the commit starts with `a4a1987`.

This is implemented by generating a not-tracked-by-git file `version.py` on any execution of `setup.py` (e.g., installations and upgrades) with the following content:
```
# This file is automatically generated by SunPy's setup.py
version = '0.3.1'
git_description = 'v0.3.1-128-ga4a1987'
```
where `git_description` is the output of `git describe --tags`.  This implementation is heavily inspired by the approach taken by NumPy, although they use only the SHA1 hash (from `git rev-parse HEAD`).

Notes:
* `git_description` will contain an error message if the process that executes `setup.py` cannot run/find git
* `git_description` will be 'N/A' if there is no `.git` directory, and then `system.util.system_info()` will know to ignore it