Use internal mutability for Attr::value

- Take over from #2643
- close #2643