Enable specifying `Makefile` configurations via the `.env` file.
Aside from many updates and bug fixes, the biggest change is that the Makefile now reads the .env file and no longer takes any variables from the host shell unless given during the make command invocation. Also, lots of new rules for ruff that I found reasonable.