Add 0.9 changelog and bump version. :point_up:
Refs. #24. Add pypy3 to travis.yml.
Use binary mode when opening unbuffered file.
Add tests for detaching pyzord.
Refs. #25. Ensure fp closing in the pyzord script.
Refs. #25. Ensure that we close fp in ``pyzor.config``.
Refs. #25. Update tests.
Refs. #24. Add full list of Python version on which Pyzor will work.
Refs. #26. Add support for pre-forking to Pyzor Server.
Refs. #26. Better handling of pre-forking database connections.

Add a new classmethod to the server engines that yields partial
functions that return a new database connection. This functions
are called in the child process instead of the parent one, thus
preventing any possible issues.

MySQL engines also have a special rule that only enables expiry
on a single database connection, since only one "reorganizing"
daemon thread is necessary.
Refs. #26. Add functional tests for pre-forking.

Run basic checks on a Pyzor pre-forked server with mysql and redis
engines (currently the only ones that support pre-forking).

Also switch to using SIGTERM instead of SIGKILL when stopping pyzord
server in functional tests. This ensures a clean shut-down and all
child processes are being stopped.
Wait for the pyzord process to exit before starting running the tests.

This was not an issue before because we used SIGKILL, which terminated
the process immediatly. However now we're using SIGTERM and we're
performing a clean shutdown which in some cases may take a bit longer.

Interestingly PyPy doesn't seem affected for some reason. This is either
because stopping PyPy is faster, or starting PyPy is slower.
Refs. #30. Create a base engine class ``pyzor.engines.common.BaseEngine``.

Add a base class for engines with stubs for all methods that require
implementation for a pyzord server engine.

The ``whitelist`` and ``report`` methods are exceptions to this, as
noted in the documentation.
Refs. #29. Switch to v1 of redis engine.

Deprecate the old version of string encoding record in favour of
using hashes. Check for deprecated records when the engine is
created and display warnings for the user.

Add ability to delete old records to the pyzor-migrate script, in
order to get rid of the warning.

Use hincrby when incrementing reports and whitelists counts, instead
of replacing the whole record. Make sure to set propper expiry if
necessary.

Old version will still be available under the `redis_v0` name.
Refs. #29. The test are actually for the v0 version of the redis engine.
Separate the engines unit tests.
Refs. #29. Add tests for the new Redis engine.
Move the functional engines tests to a separate package.
Refs. #29. Change the way we do one-step reports in redis engine:

 - Use `hincrby` even if the key doesn't exists yet. Redis
   automatically creates it and sets it to 1.
 - Use `hsetnx` to set the entered date, this only sets it
   the key doesn't exists.
 - And use `hset` to always set the updated date.
 - Change the decode method to expect some keys to be missing
   from the hash.
Adjust redis test to not use hardcoded values.