Some stages in the evolution of usable shellcode

1 - Shows how we would write a convention-conforming function to launch
    the shell.

2 - But we aren't a well-behaved function :).  Removed SAVE/RESTORE,
    and references to %fp (because of the overflow it won't be valid).

3 - Removed NULL bytes and added setuid(0) call as /bin/sh discards
    effective UIDs < 100.

-ghandi
