- add documentation to previously documented classes and functions and refactor some of the documented one, in accordance to the PEP257 and ReStructuredText standards ;
- add some type hints ;
- use a NamedTuple for the `Galaxy.compute_users_score` method instead of a raw tuple. Also change a little bit the logic in the function which call the latter ;
- add some additional parameter checks on a few functions ;
- change a little bit the logic of the log level setting for the galaxy related commands.
This is a big performance gain, especially for the tests.
Examples:
----
`./manage.py test galaxy.tests.GalaxyTest.test_full_galaxy_state`
Measurements averaged over 3 run on *my machine*™:
Before: 2min15s
After: 1m41s
----
`./manage.py generate_galaxy_test_data --user-pack-count 1`
Before: 48s
After: 25s
----
`./manage.py rule_galaxy` (for 600 citizen, corresponding to 1 user-pack)
Before: 14m4s
After: 12m34s