Extend CHOOSE-CEILING/FLOOR-MULTIPLIER.

These functions can now be used to replace ceilinged/floored
multiplication by A/Y.
Relocate all multiply-shift code generation into a single function.

Add a new function: GEN-MULTIPLY-SHIFT-EXPR. Use calls to this function
in the div-by-mul code generators instead of duplicating code.
Extend the ceiling and floor generators for rational numbers.

TODO: Add comments and examples, add comparison-based product
calculation.