docs: use parallel builds to speedup docs generation

Using parallel builds to increase doc regeneration as well as speedup
Travis builds.

With hot filesystem speed are as follows depending on the -j value:

Processes	Duration
1	7.75s
3	5.2s
5	4.21s
8	3.88s
10	3.96s
15	3.38s
20	3.48s

Cold (12 runs)
1	20.27 (17.82-22.71)
15	17.91 (14.41-21.42)

Not as big a saving as I'd hoped for a cold start but good for doc
development.
Travis: disable unsupported DB backends and Django versions

They're known to fail and we can reenable them when support is brought
back into core.  For now they're simply making Travis take longer to
report issues.
Travis: install lxml without compile optimisations

Use CFLAGS="-O0" as recommended by
http://lxml.de/installation.html#installation to speedup installation
times in Travis builds.

This is applied to all installations here, should maybe be limited to
lxml.

The next step wpuld be to create precompiled wheel packages to speedup
setup.

Without this change we take on average 2,5min to setup the packages for
testing. After this we shave off 1,3min i.e. setup takes on average 57s
gitignore: .DS_Store
Cleanup: removed some permissions left behind

These should have been gone in 6b6b5532.
pep8: --help options was broken in no param case
pep8: document exclude patterns
pep8: adjust line length to beyond current max

Catch line lengths based on the Pootle Styleguide
http://docs.translatehouse.org/projects/translate-toolkit/en/latest/developers/styleguide.html#maximum-line-length
Tests: fixed docstring
Tests: removed dead code
Cleanup: removed dead code
Tests: added function to test if list items match
Tests: use dummy cache backend

Let's prevent from shooting ourselves in the foot.
Permissions: extend `view` permissions with defaults

Ensures access rights will be extended with those corresponding to the
default users (nobody, default), thus the fully-explicit nature of the
`view` permission is now more relaxed.

Fixes #3344.
Permissions: avoid extra query for admins
Tests: allowed defining negative permissions for permission sets
Permissions: re-introduced the `hide` negative permission

Allows to explicitly forbid users from accessing specific projects. This
commit also merges the `Project.accessible_by_user()` and the
`Project.for_username()` class methods, as the fallback mechanism has been
simplified.

Fixes #3345.