py: In asmthumb, clean up unit/int types and ite ops.
py: Add store r8 and store r16 ops to asm_x86 and asm_x64.
py: Make macro names in assemblers consistent, and tidy up a bit.
py: Fix types, uint -> mp_uint_t.
py: Allow viper to use ints as direct conditionals in jumps.

Allows things like: if 1: ...
py: Implement more binary ops for viper emitter.

This included a bit of restructuring of the assembler backends.  Note
that the ARM backend is missing a few functions and won't compile.
tests: Add tests for viper binary operations.
py: Add casting to viper; add native mem stores to viper.

Viper can now do the following:

def store(p:ptr8, c:int):
    p[0] = c

This does a store of c to the memory pointed to by p using a machine
instructions inline in the code.