only create or update a user record if needed

We test the user account by trying to use it to retrieve / on the couch which prints a welcome message if the user is valid and returns a 401 otherwise.
only create couch database if it does not exist yet
use full path to curl for sake of consistency
default  to undef so no command is run before the exec
The /etc/couchdb directory wont exist until something creates it (such as python-couchdb), and we cannot depend on those external resources. Because we setup a symlink to /etc/couchdb when the couchdb package gets installed it will try to write files there and will fail with the an error similar to the following:

/Stage[main]/Couchdb::Base/File[/etc/couchdb/local.ini]/ensure: change from absent to file failed: Could not set 'file on ensure: No such file or directory - /etc/couchdb/local.ini.puppettmp_9420 at /srv/leap/puppet/modules/couchdb/manifests/base.pp:57

this change just manages the /etc/couchdb directory to make sure it exists before anything attempts to install there
Merge remote-tracking branch 'origin/master'