Allow storing a pre-hashed admin password

When duplicating a couch, it is difficult to copy the _config/admins/*
values. Storing the encoded value does not work because that value is
re-hashed when stored. (Your password is the literal string
"-pbkdf2-abcdef...".)

This change will store any config setting unmodified if ?raw=true is
in the query string.

Updating _config/admins/* already requires admin privileges, so there is
no change to the security.
Move myself from THANKS to AUTHORS
Add documentation on replication

Previously replication.rst described only the _replicator database, but did
not provide an overall view on replication.
Create/edit and query views.

It is now also possible to preview views with pouch. Issue #1806
Add design doc metadata to view
Fixes issue #1816
Show view request duration amd goto doc id

This is for issues #1812 and #1810.
Fauxton wrap codemirror errors in try catch.
fix 140-*.t, reflect mv README README.rst
FIX BUILD: add Vagrantfile to license.skip
FIX BUILD: add license header to fauxton/templates/../ddoc_info.html
Fauxton fix log not refreshing
Ajax loader helper

Added disableLoader & loaderClassname attribute to views, for showing ajax spinners. Included default class and spinner image.
Added the loader to app-container as well, to run on the whole page while the routeObjects load.

fixes #1802
Fauxton: Upload attachments

Can upload an attachment along with progress bar and view it in
the code and field editor.

Resolves COUCHDB-1811
[TESTS] Make tests run more reliably. Delete test-auth-dbs before tests.
[TESTS] [HOTFIX] correct error in auth cache test
Fix badrecord error in EXIT handling

The second item in the by_pid tuple is the name not a #db{} record.
Restore rev handling for _bulk_docs with all_or_nothing

Commit 5b1430c120904181313848444dbfcdb60e42568b added this hunk;

-        {aborted, lists:map(
-            fun({{Id,{Pos, [RevId|_]}}, Error}) ->
-                {{Id, {Pos, RevId}}, Error};
-            ({{Id,{0, []}}, Error}) ->
-                {{Id, {0, <<>>}}, Error}
-            end, PreCommitFailures)};
+        {aborted,
+         lists:foldl(fun({#doc{id=Id,revs={Pos, RevIds}}, Ref},Acc) ->
+                         case lists:keyfind(Ref,1,PreCommitFailures) of
+                         {Ref, Error} ->
+                             [{{Id,{Pos,RevIds}}, Error} | Acc];
+                         false ->
+                             Acc
+                         end
+                     end,[],Docs3)};
+

This causes the full list of revisions to be passed to revid_to_str/1;

revid_to_str(RevId) when size(RevId) =:= 16 ->
    ?l2b(couch_util:to_hex(RevId));
revid_to_str(RevId) ->
    RevId.

This falls through to the second case, which in turn leads to invalid
JSON output when we convert the presumed iolist.

This patch restores the code that takes only the head of the revisions
list when present, and an artificial "0-" when it is not (in the case
that the validation fails for a new document rather than an update).

BugzID: 1772