ast/emitters: Fix memclear/memmove size checks to do unsigned comparisons

Fixes the "compiler hang" part of #699

emit_x86.bas' _emitMEMCLEAR() and _emitMEMMOVE() need to do unsigned checks
to detect size values so big that they have wrapped around into negative
values, otherwise they'd be emitting GiBs MOV instructions (covering 4
bytes each...).

astNewMEM() itself also has a check like this, which the code in
emit_x86.bas relies on, it needs to be fixed too.

I'm not 100% sure the code is correct yet, there's probably a situation
where it could fail (thinking about the 64bit port here, and
cross-compiling between 32bit <-> 64bit).