There are a number of options duplicated between the Freezer class and the Executable class. This makes the code more complex, and confuses users - for instance, if you set the target directory of the Executable rather than specifying it as a build_exe parameter, your executable will end up in a separate file from its supporting files and libraries.
I think most of these options should be removed in one place or the other - some flexibility may be lost, but the code is simpler and it makes it harder for users to shoot themselves in the foot.
This PR is the first stage towards that, removing a number of options where it was straightforward to get rid of one copy of them.
We should probably make a 4.x branch before merging this into default, in case it becomes necessary to do another 4.x release before 5.0 is ready.