MPNS support

This is depended on com.notnoop.mpns that is not in maven central to test it you'll need to build my fork https://github.com/edewit/java-mpns

In the UI one can now choose between the two protocols, also added support for user defined data.
yes, probably, we could just use `variant.type == 'windows' || variant.type == 'windows_wpns'

the real problem here is that the WP8 crashes now on exception currently (with no error reported)  because it can't find expected `windows`