Adding support for "can?" check multiple subjects

The behaviour when an array of subject is given, is check if there is a permission at least on one of the given subjects.
Assuring that with both subjects without permission can? returns false
Adjust CHANGELOG
Changing how to use can? to check many subjects

During the test to permit pass an Object as a hash I needed to change how call can? to mantain the functionality to pass any object inclusive an instance of Array as a single subject.
To assure that funciontality, now we need to pass a hash containing a key :any and the array of subjects as his value.
The array deals with the same objects that an usual can? does... and obviously, that hash is only necessary when checking multiple subjects.
Removing unused method matches_subject_any?

The method can? was changed and does not pass an array of subject anymore to matches_subject? since last commit.
So, I'm removing the method matches_subject_any? that only existed to deal with that array of subjects.
Refactoring of method can? to improve legibility

The method can? became a bit messy and repetitive dealing chosing paths almost identical to single and multiple subjects, when only the difference was iterate on the array of subjects.
So, I created the method extract_subject that independently if given a single or multiple subjects, it will returns an array of subjects. So, for can? does  not matter anymore if subject is single or multiple, it will deal on the same way.
Merge branch 'release/1.7.1'
Merge pull request #1 from CanCanCommunity/master

Sync with Master repository
Merge branch 'master' into can_check_multiple_subjects
Merge branch 'cefigueiredo/can_check_multiple_subjects' into develop
resolves #3