(NETDEV-20) Change snmp receiver namevar to host, port, username

Without this patch the snmp_notification_receiver specifies the name
parameter as the sole namevar.  This is a problem because there can be
multiple resources with the same hostname or IP address.  This patch
addresses the problem by changing the type to build a composite namevar
that joins hostname, port, and username with a colon to form the
resource identifier.  This looks like:

    $ puppet resource snmp_notification_receiver
    snmp_notification_receiver { '127.0.0.1:public:162':
      ensure   => 'present',
      security => 'noauth',
      type     => 'traps',
      version  => 'v3',
    }
    snmp_notification_receiver { '127.0.0.2:public:162':
      ensure   => 'present',
      security => 'noauth',
      type     => 'traps',
      version  => 'v3',
    }

NOTE: Namevar components cannot be properties because of the
[key_attribute_parameters class method][key_attribute_parameters] on the
type.

This patch also removes the community attribute.  The username property
now represents both the snmp username or the snmp community depending on
the snmp version of the notification receiver.

[key_attribute_parameters]: https://github.com/puppetlabs/puppet/blob/3.7.1/lib/puppet/type.rb#L355-L361
Merge branch 'nd20_composite_namevar'

* nd20_composite_namevar:
  (NETDEV-20) Change snmp receiver namevar to host, port, username