Fixed a conditional to use ==.
Made get_data_item() return a tuple.

This allows removal of code to check the return for the data item and
optional arguments. Making it always return a tuple is more consistent.

In a related change, simplified the way the args_converter is checked
for a lambda, and how to always pass ret[1:] for the return from
get_data_item() to the args_converter, instead of conditionally sending
it.

These changes required updates to tests which call get_data_item(), and
in the process, examples of dict args_converter lambdas and functions
were fixed for having the key for the data item passed as the last arg.
Restored correct scrolling after list.extend op.