Adds support for ssh wrapper with identity file for mercurial

This is similar to the functionality that exists for a git repo. It allows the user to specify an identity file and creates a temporary file to use as an ssh wrapper. Usage example:

```
vcsrepo {'/path/to/checkout':
    ensure   => present,
    provider => hg,
    source   => 'ssh://user@domain.com/repo',
    revision => 'default',
    user     => $user,
    owner    => $user,
    group    => $user,
    identity => '/path/to/ssh_key',
    require  => [ File['/path/to/ssh_key'], File['/path/to/checkout'] ],
  }
```