Projects: use fresh data for retrieving list of user-accessible projects
Avoid aggressive caching of language/project lists

In this commit:

- a sorted dictionary of code-name key-values are cached instead of
  querysets
- language/project list caches are also invalidated when translation
  projects have been altered
- invalidation only happens in a single place (signal receivers)

Fixes #3320.