add testing reqs
pep8
Merge remote-tracking branch 'refs/remotes/kali/feature/testing-fu' into develop
Merge remote-tracking branch 'refs/remotes/kali/yet-another-pep8-fix' into develop
make exceptions fail the test.

right now, the exceptions were visible in the stdout,
but the test was not *actually* failing.

using nose deferred decorator for this.
consume messages eagerly
add changes
Merge remote-tracking branch 'refs/remotes/kali/bug/fix-mail-tests' into develop
count_foo uses expanded u1db count method.

Other fixes in the commit:

* Correct the semantic for the recent flag (reset)
* Minor unicode fixes.
* Use a field for tracking the last_uid

In general, this tries to squash all the quick and naive methods
that were relying on evaluating all the message objects before returning
a result.

Further work is still needed, planned also for 0.5 release.
get_by_index needs to be indexed too.
Merge remote-tracking branch 'refs/remotes/kali/feature/efficient-indexing' into develop
Use git.cmd instead of git.exe in windows since we use GitBash
Footer url shouldn't end in period.

[Closes #4791]
Merge remote-tracking branch 'chiiph/bug/versioneer_windows' into develop
Merge remote-tracking branch 'refs/remotes/ivan/bug/4791_url-should-not-end-in-period' into develop
memoize the special method
deferToThread unsetting recent flag
Merge remote-tracking branch 'refs/remotes/kali/bug/fix-memoize' into develop
Merge remote-tracking branch 'refs/remotes/kali/bug/defer-unset-recent' into develop
Stop providing hostname for helo in smtp gateway (#4335).
Only try to fetch keys for multipart signed or encrypted messages when fetching mail (#4671).