Cleanup some type predicates

Use the new `cl--define-built-in-type` to reduce the manually
maintained list of built-in type predicates.
Also tweak docstrings to use "supertype" rather than "super type",
since it seems to be what we use elsewhere.

* lisp/subr.el (special-form-p): Remove redundant `fboundp` test.
(compiled-function-p): Don'Return nil for subrs that aren't functions.

* lisp/emacs-lisp/cl-macs.el (type predicates): Trim down the list.

* lisp/emacs-lisp/cl-preloaded.el (cl--define-built-in-type):
Register the corresponding predicate if applicable.
(atom, null): Specify the predicate name explicitly.
3 jobs for master in 58 minutes and 36 seconds (queued for 5 seconds)
Status Job ID Name Coverage
  Build Images
failed #82457
build-image-inotify

00:58:36

 
  Normal
skipped #82459
test-lisp-emacs-lisp-inotify
skipped #82458
test-lisp-inotify
 
Name Stage Failure
failed
build-image-inotify Build Images
net/http: request canceled (Client.Timeout exceeded while awaiting headers)
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-inotify-8df67390: No such file or directory
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1