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

While I was reviewing #880 and specifically https://github.com/saimen/neovim/commit/08fe92c8f52254be9ffaa07555fc4416f5d48bc0 this thought crossed my mind:

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.

What do you think guys? ping @aktau