patch the _version file so it reports the running version

until now this was only possible when running python setup.py version
from the source tree. now the <module>.__version__ also reports
correctly the runnng version
Merge remote-tracking branch 'refs/remotes/kali/feature/patch-reported-version' into develop
Use git.exe instead of git.cmd in windows since we use GitBash
Merge remote-tracking branch 'chiiph-github/bug/versioneer_windows' into develop
Make couch backend consistent and lightweight.

This commit introduces the use of couch view, list and update functions to put
and get data from the couch database. This avoids loads of metadata
transferring and encapsulates operations in atomic PUTs.
Monkey-patch u1db to use CouchDocument.
Fix couch tests to reflect remodelling.
Remove index tests for couch backend.
Add 'ddocs.py' generation on setup.py.
Add database migration script.
Add changes file.
remove conditional gzip, fix import
Add couch atomicity tests.
Merge remote-tracking branch 'refs/remotes/drebs/feature/consistent-metadata' into develop
add http-encoding header, decode it too
Merge remote-tracking branch 'refs/remotes/kali/fix/really_enable_gzip' into develop
Do not instantiate the synchronizer each time.

This has the nice effect of letting the persistent-connection
reuse the existing connection, avoiding the ssl handshake overhead
each time we try to synchronize.

This can be traced by logging the instantiation of HttpClientBase
in u1db.remote

I *think* we should be fine with the timeouts as long as we keep
the sync period along the 1 min we are doing now. For other cases,
we should look into how to override the default timeout in httplib
(used by u1db http_client).
Set soledad timeout default to 2 min
catch cannotsendrequest exception
Merge remote-tracking branch 'refs/remotes/kali/bug/reuse-http-connection' into develop