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 #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