Continuation of code printing refactor

- Added improved docstrings to fcode, ccode, and jscode
- Standardized implementation of all three code printing functions, they
  now all take the same kwargs (except for standard and source_format,
  which are fortran specific).
- Standardized implementation of Function printing, moved this to
  codeprinter. There was a bug in that some functions that weren't
  standard C/Fortran/JS were getting through without being marked. This
  was because of the old method of "unless it's stated to be bad, it's
  good". The new printing works the opposite: only functions that are
  known to be standard are whitelisted. This catches the issues in a
  much more standard and clean way, and allows for reuse of the
  print_Function implementation.
- As part of standardizing Function printing, the fix for #6814 was
  changed. Previously we were printing `log(10d0)` for `log(10)` in
  fortran, because this function only accepts floats. The new
  implementation evaluates this to the required precision (default 15)
  in sympy, and just prints a number. If the function doesn't evaluate
  fully (suppose atan2(2, x) -> atan2(2.0000, x)), then the numeric
  constants are still printed as doubles, so everything works fine.