allow multiple defined type declarations

Hello,

I was working on my own module to manage nss dbs and then discovered this module.  I needed the ability to be able to specify multiple pkcs12 key pairs and CA certificates.  I ended up making some fairly introsive changes to the module in order to enable this, including removing the two tier basedir/dbname concept.  Eg, this is would be a working manifest in my fork:

```
nssdb::create { '/etc/dirsrv/slapd-ldap1':
  owner_id       => 'nobody',
  group_id       => 'nobody',
  mode           => '0660',
  password       => 'example',
  manage_certdir => false,
}

nssdb::add_cert_and_key{ '/etc/dirsrv/slapd-ldap1':
  nickname => 'Server-Cert',
  cert     => '/tmp/foo.pem',
  key      => '/tmp/foo.key',
}

nssdb::add_cert { 'AlphaSSL CA':
  certdir  => '/etc/dirsrv/slapd-ldap1',
  nickname => 'AlphaSSL CA',
  cert     => '/tmp/alphassl_intermediate.pem',
}

nssdb::add_cert { 'GlobalSign Root CA':
  certdir  => '/etc/dirsrv/slapd-ldap1',
  nickname => 'GlobalSign Root CA',
  cert     => '/tmp/globalsign_root.pem',
}
```

Do you feel it would be possible to merge back some of the changes in my fork?  If so, which changeset(s)?