Fix for #8777 (continuing PR #9061)

Now filter name is trimmed and lowercased before evaluation for case
insensitive and whitespace trimemd check.

Signed-off-by: Oh Jinkyun <tintypemolly@gmail.com>
I don't think *containing* is good here. Also, should it be filter *name* or just *filter*? Not sure. Some alternatives (but maybe some native English speaker should have a look as well for better suggestions);

- `Filter contains invalid filter name: %s`
- `Unknown filter: %s`
- `Unsupported filter: %s`
- `Unknown filter: %s. (Supported filters: <list of supported filters>)` (If possible of course)

Finally (not a Go programmer, so someone else should comment on this); should `%q` be used here in stead of `%s`?