Fixed implicit conversions

Implicit conversions are now verified through unit tests to work with
standard scalar types and the new snl types. Conversions fail if the
destination type cannot store all values of the source type