Changed notification architecutre; Added batch send, reduce EPIPE error.

For end users:
- Refreshed architecture; now it sends multiple notification in single
  transmission. And reduced EPIPE errors you may had seen.
- Removed `Notification#device` and removed `Connection#sendNotification`.
- Added `Connection#addNotification`.
- Added `Connection#flush`.
- Added `Connection#broadcast`. Which enables you to broadcast same
  notification content to many devices in a memory efficient way.
- Added option `bucketLength` and `notificationWaitingTime`.

For package developer:
- Added feature of notification bucket, this enables you to send
  multiple notifications in a single transimission for trafic
  efficient delivery. Also it has come to prevent unexpectable EPIPE
  error; the error can be observed when some amount of data has been
  sent via a connection, > 8192 bytes. Now the connection reopen
  itself every time after the bucket went out.
- Added connection state constants and variable and make
  `Connection#deferredConnection` exists always. This is required to
  determine connection available state in `Connection#run`.
- Added `Connection#notificationWaitingTimer` to flush notifications
  automatically and periodically when the bucket is not full.
- Removed `notification` argument from `Connection#raiseError`
  event. Since the effort won't reward to retrive notification from
  the bucket.
- Disabled `Connection#disconnected` event.
- Added tests, work with busterjs.
Updated .gitignore.
lint.