format float/double correctly when no precision/scale has been specified

- previously we were always formatting float/double values with a
  precision
format default value for float/double correctly

- previously this was a bare integer - now this uses
  syntax identical to MySQL namely:
  DEFAULT '12345.123' vs. DEFAULT 12345.123
format CURRENT_TIMESTAMP with precision, as needed

- for timestamp(N) columns, the default should be formatted
  as CURRENT_TIMESTAMP(N) rather than simply CURRENT_TIMESTAMP
  or it will be a syntax error