Fixes #159 and some race conditions.

### New method in RestTemplate:
* `<T> T put(String path, ResponseCallback<T> callback)`

### New methods in CouchDbInstance/StdCouchDbInstance:
* `boolean createDatabaseIfNotExists(DbPath path)`
* `boolean createDatabaseIfNotExists(String path)`

### Changed code/behavior
* `StdCouchDbInstance.checkIfDbExists(DbPath db)`
* `StdCouchDbConnector.createDatabaseIfNotExists()`

Please see the individual commit messages for complete explanation.