keep track of string representation of floating point constants
The double value currently stored is only approximate and doesn't keep
track of whether the constant is of type float or double.
Printing the double value using the %g format specifier may also lose
the decimal point.
We solve these problems by saving the original representation
in the source code as a string in the corresponding pet_expr,
provided no macros are involved. Otherwise, we use
clang's pretty printer to print the constant to a string.
Requested-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>