Implement a hook for custom of `cp -r`

Wrap the call of `ncp` in `Workspace.copyRecursive` to allow
API consumers to provide their custom implementation, e.g.
yeoman's `directory` action.

/to @ritch please review