Fix boot.loader.grub.device setting

The /dev/disk/by-label/ namespace has only partition device files, not
the raw disk device files needed for GRUB. So since "forever", I've had
a broken boot.loader.grub.device setting, but didn't notice it until
now because NixOS only re-installs GRUB if there is a new GRUB version.

Fix it by switching to /dev/disk/by-id/ device files (pointing to the
raw disk, not the first partition), because they are stable (unlike
device files like /dev/sda).

For reference, here is the error:

  $ sudo nixos-rebuild switch
  building Nix...
  building the system configuration...
  updating GRUB 2 menu...
  installing the GRUB 2 boot loader on /dev/disk/by-label/nixos-ssd...
  Installing for i386-pc platform.
  /nix/store/2jdl39ppy1l6cids65qywdvycff6v4cq-grub-2.02-git-1de3a4/sbin/grub-install: warning: File system `ext2' doesn't support embedding.
  /nix/store/2jdl39ppy1l6cids65qywdvycff6v4cq-grub-2.02-git-1de3a4/sbin/grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
  /nix/store/2jdl39ppy1l6cids65qywdvycff6v4cq-grub-2.02-git-1de3a4/sbin/grub-install: error: will not proceed with blocklists.
  /nix/store/w7rgpbyqfcz0xfjhmcn05sp6zig8gx8w-install-grub.pl: installation of GRUB on /dev/disk/by-label/nixos-ssd failed
  warning: error(s) occured while switching to the new configuration

(Note that GRUB doesn't differentiate between ext2/3/4 filesystems in
the above message. It really is an ext4 filesystem.)