Add a discard_invalid option for filters

Sometimes a mutation might be provided an array/hash of random stuff. If there is stuff we don't like in one of these objects, it might be nice to have the option of stripping out the invalid elements rather than just marking the whole thing invalid and failing. The discard_invalid option allows us to do just that!