Don't use the type from left operand as result type for binary ops.
Don't use the type from left operand as result type for binary ops.

Python 'int' and 'float' types correspond to 'long' and 'double' C++
types. We fill `SBData` values to create `SBValues` for results of
arithmetic ops, using the `SBData.SetDataFromUInt64Array` and (now)
`SBData.SetDataFromDoubleArray` methods.

If we use the SBType of the left operand to create the result value, we
can end trying to create a float SBValue from a double SBData, which
doesn't work.

This change explicitly selects the result SBType as either 'long' or
'double' based on the python type of the result. This makes
test/lit/binary_ops.test pass.

sivachandra/gala,sivachandra/gala