Fix Hash::extract() not matching 1/0 to true/false.

Historically [prop=1] has matched prop=true as well. This restores that
and also fixes [prop=0] not finding falsey values.

This makes the typing less strict in Hash::extract() but I don't think
it is unreasonable given PHP's type juggling.

Refs #3288
Merge pull request #3704 from cakephp/hash-matches

Fix Hash::extract() not matching 1/0 to true/false.