(#111) - Fixes bugs discovered by couchdb-harness

- #63 (Add the "port" to the Location header)
- #101 (Implement ETag/HEAD, MD5 sums for attachments & revisions for
  documents)
- 'curl friendly' responses (newline after json)
- Removed race conditions for _users/_replicator dbs
- Removes express-added ';charset=utf-8' where relevant
- Rewrite bug fix (doesn't use query params for routing any longer)
- Support 'If-Match' header as a way of supplying a revision. Also
  return an error when multiple conflicting revs are given.
- added a 404 handler for the few rare use cases where the
  'db file not found' error isn't returned.

Most of the diff consists out of the minor 'curl friendly' point ironically (all the sendError() and sendJSON() calls). I first tried to just monkey patch res.send() a bit more, but that got messy and the res.send(status, body) signature is deprecated in the latest express anyway. I think this is a better long-term solution.