Added Copy Directory support.

Added CopyDirectory tests.
I would actually suggest not putting a `Name` property on `IDirectory`. This functionality that belongs to the path, so I would rather see a `DirectoryPath.GetDirectoryName()` method (just as there is a `FilePath.GetFilename()` method) for consistency.