couchdb: full support for attachments
couchdaemon: remove unused _ import
couchdb: rework database API one more time

Type couchdb.DB is back. I wasn't sure about removing it in the first
place and the experiment has failed. Code clarity in the project where
go-couchdb is used did not improve significantly.

All API functions that take a couchdb.Options map or a revision string
now take it as the last parameter. That's both more consistent and
looks better if the options are given as a literal.

Client.PutRev has been deleted. DB.Put now takes a rev argument.

Some things have been renamed:

    ChangesFeed.Db -> ChangesFeed.DB
    Client.AllDbs -> Client.AllDBs
    Client.AttachmentInfo -> DB.AttachmentMeta
    Client.CreateDb -> Client.CreateDB (returns the DB).
    Client.DbUpdates -> Client.DBUpdates
    Client.DeleteDb -> Client.DeleteDB
    Client.GetAttachment -> DB.Attachment
    Client.Query -> DB.View
    Client.SetSecurity -> DB.PutSecurity
    DatabaseError -> Error
    DbMembers -> Members
    DbSecurity -> Security
    DbUpdatesFeed -> DBUpdatesFeed
    DbUpdatesFeed.Db -> DBUpdatesFeed.DB
couchdb: interface-based auth

We now have two built-in ways of doing authentication:
HTTP "Basic Authentication" and CouchDB "Proxy Authentication".

Setting the authentication mechanism is protected by an RWLock.
Client.{Login,Logout} were not threadsafe before this, but they really
should be.
couchdb: move test helpers into separate file
couchdb: improve output for failed equality assertions
couchdb: add tests for DB.Put with rev and DB.View