Use memoization get _*_path() functions

This shouldn't make a big difference in the CLI/extension
usage, but might improve the performances of long-running
instances, or people misusing the API.
9 jobs for master in 3 minutes and 28 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Linting
passed #97449
linting:bandit

00:00:20

passed #97452
linting:mypy

00:00:19

passed #97451
linting:pyflakes

00:00:19

passed #97450
linting:pylint

00:00:27

 
  Test
passed #97453
tests:archlinux

00:01:22

passed #97454
tests:debian

00:01:23

98.0%
failed #97455
allowed to fail
tests:debian_with_bubblewrap

00:01:53

passed #97456
tests:fedora

00:01:23

failed #97457
allowed to fail
tests:gentoo

00:02:58

 
Name Stage Failure
failed
tests:gentoo Test
  File "/builds/jvoisin/mat2/tests/test_libmat2.py", line 137, in test_flac
self.assertEqual(meta['Cover 0'], {'Comment': 'Created with GIMP'})
AssertionError: 'harmful data' != {'Comment': 'Created with GIMP'}

----------------------------------------------------------------------
Ran 128 tests in 47.199s

FAILED (failures=12, errors=10)
ERROR: Job failed: exit code 1
failed
tests:debian_with_bubblewrap Test
  File "/usr/lib/python3.7/subprocess.py", line 487, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/usr/bin/bwrap', '--ro-bind', '/usr', '/usr', '--ro-bind', '/lib', '/lib', '--ro-bind', '/lib64', '/lib64', '--ro-bind', '/bin', '/bin', '--ro-bind', '/sbin', '/sbin', '--ro-bind', '/builds/jvoisin/mat2', '/builds/jvoisin/mat2', '--ro-bind', '/etc/ld.so.cache', '/etc/ld.so.cache', '--dev', '/dev', '--chdir', '/builds/jvoisin/mat2', '--unshare-all', '--new-session', '--ro-bind', '/tmp/tmpymtv0qny/tests/data/dirty.jpg', '/tmp/tmpymtv0qny/tests/data/dirty.jpg', '/usr/bin/exiftool', '-json', '/tmp/tmpymtv0qny/./tests/data/dirty.jpg']' returned non-zero exit status 1.

----------------------------------------------------------------------
Ran 128 tests in 97.939s

FAILED (errors=2)
ERROR: Job failed: exit code 1