Enhance str.format support

This adds support for almost everything (the comma isn't currently
supported).

The "unspecified" type with floats also doesn't behave exactly like
python.

Tested under unix with float and double
Spot tested on stmhal
Merge pull request #407 from dhylands/str-format

Enhance str.format support