Feature/extra parameters

Hi,

This adds two optional parameters (puppetfile and subdir) to each source inside /etc/r10k.yaml, that used to be pre-defined constants (Puppetfile and modules, respectively). This adds a lot of flexibility by allowing other non-modules repositories to be deployed with r10k as well (like hieradata, roles, etc) 

For example:
```
:sources:
  # This will clone the git repository and instantiate an environment per
  # branch in /etc/puppet/environments
  :moria_modules:
    remote: 'xxx.xx:/git/puppet/config/moria-site.git'
    basedir: '/root/environments'
    puppetfile: 'Puppetfile.modules'
    subdir: 'modules'

  :moria_roles:
    remote: 'xxx.xx:/git/puppet/config/moria-site.git'
    basedir: '/root/environments'
    puppetfile: 'Puppetfile.roles'
    subdir: 'roles'

  :moria_hieradata:
    remote: 'xxx.xx:/git/puppet/config/moria-site.git'
    basedir: '/root/environments'
    puppetfile: 'Puppetfile.hieradata'
    subdir: 'hieradata'
```

This would take each source and deploy, based on different Puppetfiles (even in the same repo), in a separate subdirectory (whose parent is $basedir/$env), like this:
```
[root@puppet01 production]# pwd; ls
/root/environments/production
hieradata/  modules/  roles/  Puppetfile.hieradata  Puppetfile.modules  Puppetfile.roles  
```
(where each Puppetfile is a simple set of "mod" lines)

This feature has the potential to allow other non-puppet uses for r10k, like software deployment. It is also backwards compatible. It proposed it for 1.3.x, but it works for 1.2.x as well.

I am sorry, but I am not familiar with the rspec test ruby development... so I could not contribute to that part.

Hope you like it!