Implicitly add `warn_unused_result` to `pure` and `const` functions

Functions with `pure` or `const` attribute can't alter global state so
there is no point to not use their results.
This change has two goals:
- We don't lose useful check in the case if someone forget about
`warn_unused_result` when adding `pure` or `const` to function.
- We can reduce large lists of attributes a little.