executeScalarList() returns partial list when there are nulls

executeScalarList() will not process all rows in the result set if there are nulls.  `ResultSetIteratorBase<T>.hasNext()` assumes that null means the end of the result set, but that may not be true if one of the scalars is null.  

This change just wraps the value, so the wrapper can be checked for null.  The wrapped value can then be null without affecting result set iteration.