When setting `...sway.package = null`, the default bar configuration would throw an error trying to use the bar from the null package. Logic is added to use the bar from `pkgs.sway` instead of `cfg.package` if it is null. Fixes #1714
Allows fields of bar to be nullable and omit them from the generated configuration if unset. Fixes #1361 PR #1386
Also add associated tests for both Sway and i3. PR #1231