Refactoring of message, identifier and presence

As they are mainly data object, make them use properties.

Also implemented a smart deprecated decorator that calls the new version of the deprecated method with a warning.

It triggers a flood of internal warning, they'll be fixed on another PR.
`typ` would become `type_`