More reliable logging

the first call of remoteconsole.log sets it to whatever the best log is,
either Firebug's or if they don't have Firebug, a console.log that
expands arrays.
Better result passing

Results with "cycles" like a.b = b; b.a = a would error out deceptively. So
like "window" for instance. The error message said maybe the serialized
string is too large, but the actual error message said cycles were
detected. a: { b: { a: { b: omg...}}}

Added rudimentary support for eliminating cycles from objects being
stringified. Ultimately, keep a record of the objects seen and when a
cycle is detected just say "<cycle to "+objectIds[val]+">" or something.
I dunno. How do you tell which object is object 2? 2nd one to be...
serialized... breadth first...