Process multiple packets per tick

Before this change we would process at most one gearman packet per tick.
This meant that if we got more than one packet in a single socket read
per tick we would slowly build up a large buffer of un-read packets
(@remainder in the code). This caused problems as we started to run out
of memory and get buffer too large errors.

To solve this problem we loop and process all the packets we can in one
go.
Can we incorporate these conditions into the while condition? I'm picturing something like:

```coffee
receive: (chunk) ->
  @remainder = if @remainder?.length then @remainder + chunk else chunk
  while @remainder.length >= 12 and (packetLength = @remainder.readUint32BE(8) + 12) >= @remainder.length
    if @remainder.readUInt32BE(0) isnt 0x00524553
      return @errorHandler...

    # Extract a single packet and put the rest in @remainder for the next loop
    packet = @reminder.slice 0, packetLength
    @remainder = @remainder.slice packetLength

    bodyLength = packetLength - 12
    # handle the packet appropriately
```

What do you think of this?