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?
I'm pretty sure this is actually a mistake. `list_fields` and `dict_fields` should never be falsey here. So we can use the original code.

I'll double-check that today. Good catch!