Fix up a few more issues with log.

 * src/code/irrat.lisp:
   * In log10, return the correct type for the result.  Previously, we
     would return a double even if a single were desired.
   * Fix up a few more cases where we failed to handle log of a huge
     rational correctly for log base 2 and base 10.
 * tests/irrat.lisp:
   * Add some tests to check that log returns the correct type of
     number for the log base 2 and 10 of very large rationals.