Add push notification models

The first two commits are code-cleanups unrelated to the feature implemented later, even though these changes made the implementation easier.

The third commits implements Installation Model & Repository and  adds a helper method `InstallationRepository.createAndroidInstallation()`
that pre-fills properties like `deviceType`, `appVersion` and  `status`.

@Schoonology Please review. This PR does not deal with the "update already registered installation" workflow we have discussed in iOS PR, I'll address that later.

I am not sure if we should be exposing `badge` property, as it is an iOS concept and does not have much usage on Android.