Clean up sudppipe code and add a new string-replace plugin.

Summary:
The cleanup was mostly to use 'char' (along with -funsigned-char)
rather than trying to use the appropriate of 'char' and 'unsigned
char' everywhere -- it's impossible with libc using both kinda at
random.  I made life easier here by making u8 an alias for char as
well.

I also wrote a new string-replace plugin that's faster than the
provided one by requiring that the from-string and to-string be the
same length.

I also wrote a Makefile to tie everything together.

Test Plan:
Ran make, then ran
   ./sudppipe -l ./replace_plugin.so -L foo,bar localhost 5000 4000

In another shell, I ran
   python
   >>> import socket
   >>> s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
   >>> s.bind(('localhost', 5000))
   >>> a = s.recv(10000)

In a third shell, I did
   echo -n "hello foo youfooness you." | nc -4u -q1 localhost 8000

And went back to the second shell and did
   >>> print a
and it said
   hello bar youbarness you.

Total success!

Reviewers: chris

Reviewed By: chris

Subscribers: alan

Differential Revision: http://phabricator.khanacademy.org/D8225