New semantics for the `view` permission

The `view` permission is now project-centric, therefore it can only be set
at the root directory and at the top-level of projects.

The wording has changed, and previous permissions are cleared at upgrade
time.
Moved Project/Language cached object retrieval to managers

Ideally the logic should be implemented as a inheritable manager so
arbitrary models can make use of object caching mechanisms for any
querysets.

In any case, this helps to reuse the code in other places where the cached
objects could be of some use.
Revert "Don’t filter units based on permissions here"

This reverts commit 7188cceee0a4fdd3c8053b476d50ae341ee6ffab.
Added project-centric `view` permissions

  - `view` permissions set at the project-level (or, as a fall-back, at
    the root directory) will be taken into account when determining the
    visibility of projects or translation projects.
  - Editing operations that span multiple languages/projects will only
    display the units contained in the set of projects accessible by the
    current user.
Mention the project-centric nature of the `view` permission
Docs: Mention changes to view permission semantics
Allowed to view language page always
Don't rewrite project's cache all the time

This probably ended up here because of an indentation error, otherwise it
makes absolutely no sense.
Properly invalidate user's accessible projects' cache
Invalidate user accessible project list caches when updating projects

Fixes #19 — It was thought that some black magic was involved but lack of
invalidation seems to be the culprit after all. Let's keep an eye on this
in case any caching weirdnesses resurrect.