COUCHDB-111 handle multiple files in couchjs

Rather than concatenating all the input files and compiling them into a
script with the name '<multiple files>', compile each one and execute
it with the same globals.

This change is intended to aide in COUCHDB-111 by preserving file name
and line number information when executing scripts.
COUCHDB-111 and COUCHDB-1389 JS Error Tracebacks

couchjs:
- report stacktraces on exceptions using JS_ReportError

- responds with a trace and message on errors when possible

- propogate Error-like objects from validate_doc_update to the loop

- make Error-like object play nicely with couch_os_process

couch.js:

- transform HTTP error response bodies into an Error instance to
  capture stack information

cli tests:

- print a stacktrace for individual test failures when running the suite

Fix COUCHDB-111
Fix COUCHDB-1389
COUCHDB-111 CommonJS module names in tracebacks

Adds an optional third argument to the `evalcx` function in the JS view
server to pass a filename for display in stacktraces for `Error`
objects. Updates the CommonJS support to use this when `require`ing
modules.
print JS CLI test tracebacks to stderr

Nothing in couchjs assumes that multiple arguments to the couchjs
`print` function is sensible. The call signature changes to take an
optional second parameter - a true value prints to stderr.

From this point forward, console.log in the JS CLI prints to stderr.
Propogate failures from JS CLI tests to exit codes

Assert that all tests pass and save the error code from the couchjs
invocation. Make check will actually fail when JS CLI tests fail.
COUCHDB-1338 - run js tests with port=0

When the JS tests POST to /_restart, the server comes back up on a
different port. To work around this, add a getter property for the
CouchHTTP.prototype.base_url property, using a reserved slot on the
object to store the value.
Fix JS tests for COUCHDB-1338

Fix two bad assumptions:

- The server restarts on the same port

  Change replicator_db test which verifies that replications described
  by _replicator documents survive restart to use non-HTTP db references.

- The config port matches the port in the CouchDB request URL.
Don't include rev tree in credentials

couch_query_servers:json_doc/1 adds the full revision
tree to the resulting EJSON object. This is not necessary
at all.
Detail noticed thanks to COUCHDB-1390.
NEWS & CHANGES: Bring 1.2.0 entries up to date with branch 1.2.x
whitespaces
COUCHDB-1406 - Don't attempt to encode invalid json
Fixed dist errors
JSON encode start seq number in _changes requests

This ensures replication from BigCouch 0.4 works.
fix whitespace
Add artificial delay to admin-creation to work around WebKit

WebKit browsers seem to execute the success callback too fast for
CouchDB to complete the _config PUT for creating admins. We'll
be waiting for 200ms to let CouchDB catch up.
Update CoffeeScript to 1.2.0
COUCHDB-1381 - Don't call alert() from jquery.couch.js

jquery.couch.js is a javascript library and should not assume it's
running inside a browser. Particularly, it should not call
alert(). Instead it should throw an exception.
fix comments & whitespace in tests
make /_users/_changes admin-only
Make just /_users/_changes admin-only, not every _changes