Updates!  See description.  API change for single return methods.

Because JavaScript requires extra code to handle overloads, and because
it may be confusing to structure an API with a predicate passed to a
single value return when under the hood it still calls where if there's
a predicate: force the consumer to call where themselves so there's no
confusion about what the code does.