Improve behavior with project-switch-use-entire-map=t

* lisp/progmodes/project.el (project--keymap-prompt): New function.
(project--switch-project-command): Use it when
project-switch-use-entire-map is non-nil.  Also check that CHOICE
is not a number (bug#63648).  And print incorrect inputs too.
10 jobs for master in 2 minutes and 42 seconds (queued for 7 seconds)
Status Job ID Name Coverage
  Build Images
failed #75711
build-image-inotify

00:02:41

 
  Normal
skipped #75712
test-all-inotify
 
  Platform Images
failed #75713
build-image-eglot

00:02:41

failed #75715
build-image-gnustep

00:02:38

failed #75714
build-image-tree-sitter

00:02:39

 
  Platforms
skipped #75716
test-eglot
skipped #75718
test-gnustep
skipped #75717
test-tree-sitter
 
  Native Comp Images
failed #75719
build-native-comp-speed2

00:02:36

 
  Native Comp
skipped #75720
test-native-comp-speed2
 
Name Stage Failure
failed
build-native-comp-speed2 Native Comp Images
rpc error: code = Unavailable desc = transport is closing
Running after_script
Running after script...
$ test -n "$(docker ps -aq -f name=${test_name})" && docker cp ${test_name}:checkout/test ${test_name}
$ test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}
find: build-native-comp-speed2-e1708697: No such file or directory
$ find ${test_name} ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} \) -type f -delete
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1

failed
build-image-tree-sitter Platform Images
rpc error: code = Unavailable desc = transport is closing
Running after_script
Running after script...
$ test -n "$(docker ps -aq -f name=${test_name})" && docker cp ${test_name}:checkout/test ${test_name}
$ test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}
find: build-image-tree-sitter-e1708697: No such file or directory
$ find ${test_name} ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} \) -type f -delete
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1

failed
build-image-inotify Build Images
 > [internal] load build context:
------
rpc error: code = Unavailable desc = transport is closing
Running after script...
$ test -n "$(docker ps -aq -f name=${test_name})" && docker cp ${test_name}:checkout/test ${test_name}
$ test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}
$ find ${test_name} ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} \) -type f -delete
find: build-image-inotify-e1708697: No such file or directory
ERROR: Job failed: exit code 1
failed
build-image-gnustep Platform Images
 > [internal] load build context:
------
rpc error: code = Unavailable desc = transport is closing
Running after script...
$ test -n "$(docker ps -aq -f name=${test_name})" && docker cp ${test_name}:checkout/test ${test_name}
$ test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}
$ find ${test_name} ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} \) -type f -delete
find: build-image-gnustep-e1708697: No such file or directory
ERROR: Job failed: exit code 1
failed
build-image-eglot Platform Images
rpc error: code = Unavailable desc = transport is closing
Running after_script
Running after script...
$ test -n "$(docker ps -aq -f name=${test_name})" && docker cp ${test_name}:checkout/test ${test_name}
$ test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}
$ find ${test_name} ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} \) -type f -delete
find: build-image-eglot-e1708697: No such file or directory
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1