Ensure there is something to copy the origin to

Assuming `from` is a file needing to be copied into a hierarchy, only `cp_r` will not create the necessary directory structure. By joining the destination path, taking that `dirname`, and `mkdir_p`'ing that, we can ensure the directory where `from` needs to go will always exist. At the same time, this avoids naively creating a directory `destination` which would break desired behavior of `cp_r` by copying one level too deep at the destination.
Fix typo

I was using non-defined `filepath` instead of `destination`.
Merge pull request #426 from Zsub/patch-1

Ensure there is something to copy the origin to
Revert "Ensure there is something to copy the origin to"
Merge pull request #427 from kmc/revert-426-patch-1

Revert "Ensure there is something to copy the origin to"