Defaultdict: Optionally pass key to default function

Just because you can doesn’t mean you should. I suspect most actual
use cases wouldn’t do this. I wouldn’t complain if a type checker
required the key and value types to be consistent with the default
function.