allow Message.Data to be of any marshallable type

Previously `Message.Data` field was only taking `map[string][string]` which is very limited.

Values of the `Data` map could be any JSON object according to GCM documentation. So I changed this type to `map[string]interface{}` and tested it with complex types.

I also fixed an error in README and ran a `gofmt` over the existing code. I also changed `sender.go` file from being executable in UNIX env.
Thanks.