Add support for multiple ssh_authorized_keys
Add validations and defaults to the $ssh_keys parameter
Use a custom function to ensure we support virtual/exported resources

  * Adds the custom function `resource_sigil()` to return '@' or '@@
      if the currently scoped resource is virtual or exported,
      respectively. Otherwise, returns an empty string

This can be used as follows:

    $sigil = resource_sigil()
    create_resources("${sigil}file", $resource_hash)
Accept arguments in resource_sigil
Remove nested ternary
Attempt to tame function
Reorg a bit
Revert "Use a custom function to ensure we support virtual/exported resources"

This reverts commit 8a5d05ce9aff7ed2b5af6ae205e8c765056f4156.
Add test for defining multiple ssh keys

Currently it fails due to imperfect implementaion, but this will test
 the addition of a users public keys to their known_hosts.
Fix including ssh public keys

merge() cannot be used to override as this was causing create_resources
to blow up as the hash ended up looking like:

  {
    "key name": { "key": "some-rsa-key" },
    "ensure": "present",
    "user": "username"
  }

I have merged the defaults and override hashes so that the ensure and
username values will still be merged before creation. It is also
reasonable that a user of this module would want to override ensure.
Allow ssh key names to be unique with a user

Previous to this commit ssh key names had to be unique throughout as the
key name was used as the resource name. This prefixes the username so
they only have to be unique within the user.
Merge remote-tracking branch 'upstream/pr/18' into develop

Conflicts:
	.gitignore
	manifests/init.pp