Update license year range
Handle Chrome extension Port object

As described here the api is of ports within an extension is onMessage.addListener and while it does respond to addEventListener, 
mixed usage is problematic since the listener set by addEventListener is overwritten.
http://developer.chrome.com/extensions/runtime.html#type-Port
Encode non literals as remote objects

This means that the local object does not need to make any special accommodations for q-connection. The other side of the connection can invoke any method. This is especially useful when returning an array of objects since before they would have needed to be manually wrapped in a promise.
Remote logging

When the object has circular references this was failing.
Merge pull request #31 from francoisfrisch/chrome-extension-onmessage

Handle Chrome extension Port object
Merge pull request #30

Encode non-literals as remote objects
Only pass object literals by copy.

All other objects by reference.
Marshal reference cycles.
Update change log for v0.6.0
0.6.0
How did a "y" get in there.
Propagate closed promise reason

Fixes https://github.com/kriskowal/q-connection/issues/33
Merge pull request #34 from felixge/master

Propagate closed promise reason
Add option to be notified when a collected promise is messaged

Useful to know when the `max` is too small, instead of things
silently failing.
Add spec for onmessagelost
Merge pull request #35 from Stuk/forgotten

Add option to be notified when a collected promise is messaged
Add .jshintrc and fix warnings
Move the root object out of the LruMap

it is important that the root object doesn't get evicted, so that it
remains available to recieve messages
Change the `max` option to `capacity`.
Tolerate a wider variety of closed errors.

And add their `cause` property.