Add prolog and epilog generation and frame layout for x86-32.

Determines stack slots for variables that weren't register-allocated.
Currently this is just a separate slot for each non-arg that is
actually used and not assigned a register.

Allows esp- and ebp-based frames, favoring esp unless the Alloca
instruction is present.

The prolog/epilog for ebp-based frames looks something like this:

    // prolog
    push ebx
    push esi
    push edi
    push ebp
    mov ebp, esp
    sub esp, local_size
    mov eax, arg1 // if arg1 was assigned eax, e.g.

    // function body
    ...

    // epilog
    mov esp, ebp
    pop ebp
    pop edi
    pop esi
    pop ebx
    ret

For an esp-based frame, it would be something like this:

    // prolog
    push ebx
    push ebp
    push esi
    push edi
    sub esp, local_size
    mov eax, arg1 // if arg1 was assigned eax, e.g.

    // function body
    ...

    // epilog
    add esp, local_size
    pop edi
    pop esi
    pop ebp
    pop ebx
    ret