Implement (apply) as described in R7RS 6.10

Reading the Racket documentation clarified how this is supposed to work.
(apply) takes any number of arguments as long as the final argument is a
proper list. The arguments are then placed on a list with the tail being
the final argument. For example:

(apply + 1 2 '(3 4)) ; => 10

This extends R7RS to allow no arguments to be passed which will call the
procedure with no arguments. This is also allowed in both Racket and MIT
Scheme.
Rename runFloatCondition => runSingleCondition

This was broken during the batch renaming of the llvmir's Single type to
Float.