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