Allow numbers starting with decimal in fast_atof.

This change allows fast_atof() to handle numerical strings like ".5".

It wasn't clear to me what exception handling approach was preferred here, so excuse the throw if that's not ideal. Just know that without the check, the function will parse a lone decimal followed by a non-digit as a 0.

This function is a good candidate for unit testing since the inputs and outputs are fairly well defined, but I don't have the time to do that at the moment. I tried to verify its correctness as best I could.