Add utils.readFile and utils.interpolateFile, use them in xmonad config

- Add utils.readFile which reads a file and evaluates any nix in ${{null}}
  brackets like that, returning a string. This should be a drop-in replacement
  for builtins.readFile
- Add utils.interpolateFile which does the same as readFile but also writes to
  the store and returns a store path for the new file. This should be a drop-in
  wrapper for a path
- Use utils.interpolateFile on the xmonad config file
- Use a relative file path contained in nix interpolation brackets in the xmonad
  config file
- Use package paths inside the included file (all included paths are also
  interpolated)
- Update xmonad to have better volume change support
- Update xmonad to have better multi-display support (actually start polybar,
  display different colors for second displays)
diff --git a/flake.nix b/flake.nix
index 8ee4f1c..6672843 100644
--- a/flake.nix
+++ b/flake.nix
@@ -68,7 +68,7 @@
           });
         };
 
-        utils = import ./utils nixpkgs.lib;
+        utils = import ./utils pkgs;
 
         username = "minion";