TokenProcessor - Allow basic filter/modifier expressions
Before
------
`Hello {foo.bar}`
After
-----
`Hello {foo.bar|upper}` and `Hello {foo.bar|lower}`
Technical Details
-----------------
This only supports tokens that supply values through `civi.token.eval`. At the time of
this commit, most `{contact.*}` tokens still use `TokenCompatSubscriber::onRender()` to
hack-in their values and won't work until they switch over.
The regex which recognizes the filter is pretty tight (`\w+`). This can be relaxed
somewhat by a subsequent change, but I'd say such a change has a burden to demonstrate
safety/interoparbility when running in Token-Smarty format. (e.g. demonstrate that
matching of open/close symbols works correctly).