ENH: sql support for writing NaN values (GH2754)

Closes #2754 

Database drivers expect `None` to translate this to `NULL`. 
Therefore, dataframe is cast to object dtype to convert `NaN` to `None`.

To check: performance impact. In principle should also not needed for integer colums (can't have NaNs)

Kind of API change: it did already work for postgresql (psycopg2), but it was translated to postgresql's `NaN` and now to `NULL` which is something different (but I think this is actually an improvement)