Avoid setting priority if it is the same

I got runtime exceptions when the priority was changed from 1000 to
1000. This is likely a bug in the NSLayoutConstraint class, but this
workaround is safe.
Don't store `allInsets` attribute as an associated object
Simplify and generalize KeepAttribute class cluster
Fix incorrect relation for Minimum
Add centering attributes
Implement offset attributes, with working example