add filter and withFilter alias on DecodeResult

Original motivation was wanting a slightly more humane way of filtering json that parsed successfully, yet may not represent a valid value. For example, if a string value is used to represent case objects and we need to make sure this value maps to one of them, pattern guards are convenient means to do so.