All siren modules lazy-load if they can, so there's no need to
lazy-require a siren module.
Also this avoids the annoyance of the first time you use a feature
it triggers a package install from melpa. All such things should
happen as part of Emacs startup.
I've taken a lot of inspiration from Emacs-Prelude when it came to the
structure of this rewritten config. I didn't want to use Prelude as I
don't agree with all it's defaults, nor do I want to have to deal with
any future changes in Prelude that might break things for me. So instead
I went down the fully custom path, but heavily inspired by Prelude, both
in terms of file/code structure, and also some of it's features.
Compared to my old config setup, it's got most of the same things, but
nearly everything is in a module file now, making it easy to fully
enable/disable certain features.