allow "d" and "f" on floats

I learned from the Java version of the parser that floats can end in
`d` or `f`, case insensitive. Allow this, and add tests.