Reimplement cstring_to_double() without using C++ standard library.

Some implementations of C++ streams (notably libstdc++ under OS X) are buggy
and change the global locale to implement support for imbue(), which is not
thread-safe, and so could introduce subtle bugs in multi-thread programs.

Replace the old correct but not working in practice code with a new ugly
version only supporting decimal comma and period which is not totally correct
in theory but should work fine in practice (and shouldn't make things worse
even for the hypothetical locales using some other decimal separator anyhow).
Use locale-independent function for converting doubles to strings.

Similarly to the issue #238 but in the other direction, we must use
locale-independent functions to ensure that we send the strings in correct
format to the database even if the current locale doesn't use period as
decimal separator.

This fixes errors like

	invalid input syntax for type double precision: "3,1415926500000002086"

when executing the tests in e.g. French locale.
Make sqlite3 and mysql backends work with any locale too.

Propagate the changes done to postgresql backend in sqlite3 and mysql
backends: use locale-independent functions for converting between the
(floating point) numbers and strings as the database itself always expects,
and provides, the strings in "C" locale.
Optionally use the environment locale in the tests.

This makes it easier to check that SOCI works correctly when used in a program
that changes the global locale as it can now be tested just by running tests
after setting SOCI_TEST_USE_LC_ALL and LC_ALL environment variables.