How is adding a `set_build_options` method going to help, since we'll still need `build_options` in the `modules_tool()` function? 
Most of the code added is just to pass down `build_options` to `modules_tool()`, so your suggestion would only result in even more code? And on top, it would break the pattern used in `EasyBlock` and `EasyConfig` of passing the `build_options` to the constructor.

Also, note that we will need `build_options` in `Toolchain` too (as is done in this PR) when we want to hard override `toolchainopts` (e.g. remember the `optarch = False` remark at the JSC hackathon).

So, sooner or later we will end up requiring multiple build options way down in the framework, and the only clean way is to pass the `build_options` dict (setting a global variable somewhere would be another way, but that's a no-no).