Fix #597: Fix bad ASM generation for float+cast(byte)

hDoOptRemConv() optimized out the cast in
	dim v as byte, d as double
	print d + cdbl( v )
and left the float BOP with a byte rhs, but emit_x86.bas doesn't check for
that in its _emitADDF(). It just emits the fiadd instruction, which only
supports 16bit and 32bit operands, hence the assembler errors (same for
other float BOPs). The fix is to not only disallow 8-byte operands in
hDoOptRemConv(), but also 1-byte ones.

This didn't happen with similar code such as
	dim v as byte, d as double
	print d + v
because here the rhs "v" will be automatically be cast to INTEGER by
astNewBOP(), and then again to DOUBLE to match the lhs;
or
	dim v as byte, d as double
	print d + csng( v )
because there is a cast to SINGLE already there, and astNewBOP() would
add another cast to DOUBLE to match the lhs.

hDoOptRemConv() won't trigger in these "double-cast" cases, as it only
checks for 1 CAST wrapping a VAR/DEREF/etc. (though it does have code to
skip inner CASTs wrapping the VAR/DEREF/etc. if they are noconv casts,
but that's probably a separate bug)
Fix #677: Don't ignore noconv CASTs on rhs of float BOP in hDoOptRemConv()