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)