[Filesystem] Throw Exception on copying from an unreadable file or to an unwritable file

| Q  | A |
| ------------- | ------------- |
| Bug fix?  | No  |
| New feature?  | No  |
| BC breaks? | No |
| Deprecations? | No |
| Tests pass? | Yes |
| Fixed tickets | |
| License | MIT |

In certain circumstances (overwrite set to true, target file not writable), Filesystem->copy() would return success even though the file was not successfully copied. Unit tests included.

To be more idiomatic: `if (false === $source = @fopen($originFile, 'r')) {` (same below)