Introduce stream resource
initial tests for stream
Stamp each stream message with id

ids are unique and incrementing
Method:
 - lock the stream,
 - increment a counter,
 - stamp the message with the counter value,
 - push to list and publish,
 - release the lock
 - if cannot lock now, wait until lock is released or expired
Get messages from a given message.id

All gets done in two steps:
1. Get metadata about the stream (start, end, length)
2. Fetch messages from the tail end or reply with an error
Subscribe should accept from option

if from is present, the list is fetched
from that position. If we don't have that data,
a sync error is sent.

Currently does not worry about incoming messages after a subscribe
sometimes arriving before the refetch.
fix bug in default values merging with options

zero and false can now be set as options and true/non-zero defaults wont
override them.
fix bugs. make maxLength = 0 an option
tests for subscribe from
tests for get/sync using from
use radar_client from the branch
update travis flowdock secure token
set the counter to expire along with the stream
More sanity while sending notifications

1. Disable sending any notifications while subscribe is in progress.
 - This is possible if subscribe(from) happens and while reading, we get
   a notification from another push (There are two redis steps while
   subscribe(from) unfortunately)
2. Disable sending notifications unless > last sent id.
 - This is possible if subscribe(from) happens when the new value is pushed by
   a different client, but the redisIn has not come.
Use multi for pushing

1. Counter increments and sets expiry together
2. List push, publish, list trim and expiry is set together
move redis operations to persistence
rename to MessageId
use persistence#vanchi/stream
move id gen to persistence
address review comments
change to npm published versions