Fix crash when ps/source filtering.

We can't assume Msg here is going to be a msg record since
`logplex_utils:parse_msg` can sometimes return undefined for log lines
that don't match our pattern. Need to pull apart the record format
inside the match so we can fall down to the catch-all.

This should see the 500s we're sometimes seeing with filtered
tails. (the --ps or --source argument)
Maybe it would be better rewrite the fun using multiple head. This is purely just a style change based on my personal preference....

```erlang
fun (#msg{ ps=Ps }) -> true;
      (#msg{ ps=<<Ps:Size/binary, ".", _/binary>>}) -> true;
      (_) -> false
end
```