Tests: brought back `cached_property` monkey-patching
Tests: use `get_or_create()` for projects

Not sure why the hell nobody noticed this before — this caused
IntegrityErrors all over the place for backends that support FKs.
Tests: added custom `admin_client` fixture
Store: simplified relative path calculation
Altsrcs: filter by relative path, not by name

This resulted in duplicated results for a language when there were files
with the same name in different directories. Since we don't store a
relative path in the DB, the filtering has to be done in Python.