Alert Truncation

I implemented alert truncation for invalid payloads. It will truncate the alert if the payload exceeds the maximum payload size. <code>Notification</code> takes two more parameters <code>truncation</code> and <code>omission</code>.

<code>truncation</code> may be <code>true</code>, <code>false</code> or <code>nil</code>. Default is <code>nil</code>.
<code>omission</code> may be any string, <code>false</code> or <code>nil</code>. Default is <code>...</code>.

By default it won't truncate the alert. It will truncate if <code>truncation</code> is <code>true</code>.

Usage:
```ruby
require 'houston'

APN = Houston::Client.development
APN.certificate = File.read("/path/to/apple_push_notification.pem")

token = "<ce8be627 2e43e855 16033e24 b4c28922 0eeda487 9c477160 b2545e95 b68b5969>"

notification = Houston::Notification.new(device: token)
notification.alert = "Really long message which will exceed the 256 bytes maximum payload size. So it will be truncated and omission will be added to the end of the alert."

notification.badge = 57
notification.sound = "sosumi.aiff"
notification.content_available = true
notification.custom_data = {foo: "bar"}

notification.truncation = true

APN.push(notification)
# Alert will be sent as:
# Really long message which will exceed the 256 bytes maximum payload size. So it will be truncated and omission will be added to the end of th...
```

What do you think?