Preserve doc string in `byte-compile` (bug#55830)

* lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function):
Don't transpose doc string and interactive spec, which must come
in this order.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-function-attributes): New test.
2 jobs for master in 230 minutes and 29 seconds (queued for 15 seconds)
Status Job ID Name Coverage
  Build Images
failed #47033
build-image-inotify

03:50:29

 
  Normal
skipped #47034
test-lisp-emacs-lisp-inotify
 
Name Stage Failure
failed
build-image-inotify Build Images
f4f947dc84be: Retrying in 6 seconds
net/http: request canceled (Client.Timeout exceeded while awaiting headers)
f4f947dc84be: Retrying in 5 seconds
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-493ae66b: No such file or directory
ERROR: Job failed: exit code 1