Allow virtualenv definitions to share the same requirements file

I wanted to do the following, but this causes resources to be declared twice:

```puppet
python::virtualenv { '/usr/share/err/python3':
  ensure       => present,
  version      => '3',
  requirements => '/usr/share/err/repo/requirements.txt',
  distribute   => false,
}

python::virtualenv { '/usr/share/err/python2':
  ensure       => present,
  version      => '2',
  requirements => '/usr/share/err/repo/requirements.txt',
  distribute   => false,
}
```

With these changes, this is now possible. Note that this pull request automatically brings in the commit from #4 so if you do not intend to merge this one, let me know and I will pull those changes out of it.