BUG: Convert non-array rhs for boolean assignment with correct dtype

Enforcing the left hand side datatype for a non-array right hand side
argument in index assignments was the behavior before 1.7. and is the
general behaviour here. (note this means a non-array right hand side
checks for NaN, etc. if the left hand side is integer, but an array
right hand side does not)
TST: Mark the test as knownfail for Python < 2.6
Merge pull request #2920 from certik/backport2907

BUG: Convert non-array rhs for boolean assignment with correct dtype