use PSHUFLW/HW for swapw()

%s/movdqa \(%xmm[0-9]\+\), *\(%xmm[0-9]\+\)\(\n\)pslld $ *16, *\1\npsrld $ *16, *\2\npxor \2, *\1\n/pshuflw $0xb1,\1,\1\3pshufhw $0xb1,\1,\1\3

Note: this change frees up one XMM register, I have not tried to exploit
this anyhow.

Before (cpu - AMD K8 [X2 4850e] in 32-bit mode - slow SSE2 unit):

benching sse2, 32 bits, single implementation

chacha
20 rounds
1 bytes, 1038 cycles, 1038.00 cycles/byte
128 bytes, 1894 cycles, 14.80 cycles/byte
576 bytes, 6339 cycles, 11.01 cycles/byte
2048 bytes, 21288 cycles, 10.39 cycles/byte

hchacha
8 rounds, 357 cycles
12 rounds, 521 cycles
20 rounds, 881 cycles

Object size: 5486

After:

benching sse2, 32 bits, single implementation
self check passed

chacha
20 rounds
1 bytes, 990 cycles, 990.00 cycles/byte
128 bytes, 1815 cycles, 14.18 cycles/byte
576 bytes, 5930 cycles, 10.30 cycles/byte
2048 bytes, 19946 cycles, 9.74 cycles/byte

hchacha
8 rounds, 340 cycles
12 rounds, 496 cycles
20 rounds, 827 cycles

Object size: 5390

For comparison:

benching x86, 32 bits, single implementation

chacha
20 rounds
1 bytes, 762 cycles, 762.00 cycles/byte
128 bytes, 1412 cycles, 11.03 cycles/byte
576 bytes, 5957 cycles, 10.34 cycles/byte
2048 bytes, 20884 cycles, 10.20 cycles/byte

hchacha
8 rounds, 286 cycles
12 rounds, 406 cycles
20 rounds, 656 cycles
use big S now!
seems to be a bit faster this way
64bit versions are now mingw64 safe, and all versions implement .size/.type/nx bit cosmetics suggested by Yuriy Kaminskiy (yumkam@gmail.com)