Change require_without behaviour

This pull request changes the behaviour of require_without to check if ALL of the passed attributes are missing, instead of checking whether ANY of them are missing. This allows one to create validation rules where at least one of three (or more) inputs must be filled. Old behaviour can still be achieved by adding multiple require_without rules.

See unit tests for more information on how the changes effect behaviour.

As this breaks backward compatibility I thought it best to send the PR to master instead of 4.0, although it could also be considered a bug.