Remove Unix specific behaviour from File.cp/3 and File.cr_r/3

Previously those functions would behave as in their Unix counterpart
where copying behaved differently depending if the destination was
an existing directory or not. We have explicitly disallowed this
behaviour and added the proper notes to the docs.

Closes #2024.
Fix fixtures copying on mix tests
Remove unecessary lexical check in parser
Add `Version.valid_requirement?/1`