[Fix] Nullable types in ExecuteScalar

ExecuteScalar not support Nullable<> types. For example,

```db.ExecuteScalar<int?>()``` fails with error: "System.NotSupportedException : Don't know how to read System.Nullable`1[System.Int32]"

This PR fixes the problem and adds the test.