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 developers:
- Added feature of notification bucket, this enables you to send
  multiple notifications in a single transimission for traffic
  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.
Changed mothod name Notification#toBinaryTemplate to Notification#getCompiledNotification.

Then renamed related variable names.
- template -> compiledNotification.
- notificationOrTemplate -> notification.
Also added `isCompiled` member to the compiled notification.
Reduce overhead in Connection#showState, a debug purpose method.
Enable to callback of broadcast to return any false value, e.g. null.

Previously it was only allowed to return `false` to stop the cycle.
Added Connection#bulksend.

Useful to send a variety of notification contents in pull-contents-model.
Removed obsolete options `cacheLength` and `autoAdjustCache`.
Enabled Connection#disconnected event again.
Changed mothod name Notification#getCompiledNotification to Notification#compile
Fixed a typo.
Updated README.
Update README.md
Update README.md
Added `scripts` section in package.js.
Removed `Connection#broadcast` and `Connection#bulksend`.

It wouldn't match with async architecture.
Possibly it could adapt double dispatching model(the callback accepts
another callback, to submit a fetched content), but it seemed to cause
many bugs in end users application, so left it just as an idea.
Fixed error in trim() of notification
Fixed notificationWaitingTimer handling issue.
Added Connection#countNotification and Connection#hasNotification.
lint.