Fix values_list/values_dict

This fixes `values_list()` and `values_dict()` so that everything works the same in both
ES 0.90 and 1.0.

Further it documents the details.

It also fixes some goofy stuff in the test harness.

Probably some other things.

r?
Why don't you apply the same logic than for `list_fields`` here? (``list(dict_fields) if dict_fields else ['*']``)?