Make all contact attributes writable
Don't leak JID domain string objects

So that bare JIDs modifications wouldn't lead to JID domain changes
Contact requires YAML
Default Contact groups to an array
Now we don't have to keep a fallback groups value
Switch to JSON. Here it's just enough.
Domain object: Roster

Stanzas should not manipulate storage directly. Now they should do it by
interacting with Roster object.