Add bang_mode with three modes: required, optional, and inverted.
In inverted mode, bare shortcuts select their search engine. An escaped known shortcut anywhere forces the default search for the entire query: test !ebay searches for test ebay, and gh test !ebay searches for gh test ebay. Escape prefixes are removed while other text and whitespace are preserved.
Existing bangs_without_exclamation configurations remain compatible. An explicit bang_mode takes precedence.
Validated with go test -race ./... and go vet ./....