LOAD-TIME-VALUE improvements
* Derive the type of :TOPLEVEL lambdas properly. Without this we were
never able to utilize the type from COMPILE-LOAD-TIME-STUFF.
* Use the source-type whenever it is more accurate than the type from
COMPILE-LOAD-TIME-STUFF -- eg. when using a value cell.
* Add ALIAS argument to IR1-CONVERT, allowing saving alternate forms
into *CURRENT-PATH*: this allows
(defparameter *var* 10)
(compile nil '(lambda () (the list (load-time-value *var*))))
to give the warning
; Derived type of *VAR* is
; (VALUES (INTEGER 10 10) &OPTIONAL),
; conflicting with its asserted type
; LIST.
instead of the much less useful
; Constant 10 conflicts with its asserted type LIST.
* Use THE-IN-POLICY directly in LOAD-TIME-VALUE, allowing the file-
compiler to report the LOAD-TIME-VALUE form for type-conflicts
instead of (TRULY-THE <type> (%LOAD-TIME-VALUE ...))