Fixed bug that could cause missing messages during sync

Normal listener setup proceeds is as follows:
- create listener object
- submit new listener request to router.newListener channel
- sync listener
- start send and recieve loops for listener

The problem is that new messages from other subjects may
arrive after sync starts, but before the newListener request
is resolved. This will cause the subject to never recieve these
messages.

To fix this:
- Added ack channel to newListener request to make the request
optionally synchronous.