New returns a *slog.Logger configured for the given level and format.
It accepts an optional io.Writer (w) for testing; if nil, it defaults to os.Stdout.
level: "debug" | "info" | "warn" | "error" (default: "info")
format: "json" | "text" (default: "json")