Fix LP bug 1243827

If the text of a scalar node of the parsed tree starts with a digit or '+' or '-', the function resolve() removes all '_' from it and tries to convert the new string into a float or integer. When this fails, the variant without the '_' was returned as a string value, which is obviously wrong.

I also removed the loop where strings.Replace(in, "_", "", -1) was called with a with a simple call of replace(). This should have the same result.

The changes in this request do not explain how the workaround mentioned in the bug report worked: strings.Replace() just removes _all_ underscores -- this affects double underscores as well as single underscores. Also, I was not able to reproduce it, neither with the current versions of yaml and juju-core nor with the juju-core version from the "stable" PPA for precise.