Moving up validations from issue into workpackage

This is step 1 in a series of tasks needed to migrate the unit-tests for issue into a corresponding spec for workpackage (see [#1754](https://www.openproject.org/issues/1754)), which finally should lead to clearing out issue.

This step starts with the validations: constraints have been moved from issue up into workpackage, which broke several tests/specs/features, that have been fixed in this branch. 

For convenience/better handling of concurrent modifications of issue&workpackage, I have tried to group methods together and moved them into modules (e.g. models/work_package/validations.rb) - this is no attempt to refactor work_package (not in the scope of this ticket), just a convenience to get some more manageable chunks of code.