memory efficient filter(Function, Associative)

I don't like that this relies on the Associative type having a default constructor...

The previous version only counted on `copy`, which means that a composite type that provided the Associative interface but could not be constructed by default (maybe had more things dynamically added) could still work...

So I'm not sure if this is a good idea.