Use consistent Grocer::Error for all Errors

So clients have a single, and sane, constant to rescue. The only
outstanding case is the CertificateExpiredError, which is a module we
use to tag the underlying SSLError.

Perhaps @alindeman has an idea for handling that case?
Fail notifications if the payload byte size is > 256
Refactor error handling

  - rename Grocer::InvalidPayloadError to Grocer::PayloadTooLargeError
  - pull to checking for too large a payload into its own constants and
    methods.  payload_too_large? is public so clients can perform their
    own validation instead of using exception handling
  - similar cleanup in the tests and new tests for payload_too_large?
Clean up whitespace and remove shared examples

  - remove trailing whitespace
  - remove shared examples from payload size tests
Move error into grocer module with the rest
Trim down specs to only test simple conditions

We don't really need to test the happy path or the specific UTF-8
versions of when a payload is too large because the happy path is tested
in other specs and the UTF-8 issue is really just testing the `bytesize`
method. Also we don't really need to expose the `payload_to_large?`
method so I made that private and removed the tests.
Merge branch 'validate-payload-size'

Thanks again @johnnaegle
Update CHANGELOG with payload length validation
Bump to version 0.3.2
Merge https://github.com/grocer/grocer

Conflicts:
	lib/grocer/notification.rb
	spec/grocer/notification_spec.rb