Use flags rather than positional arguments

Feel free to take or leave these changes. I changed the positional arguments to flags and also plumbed the 'bytes' argument all the way through.

I think it's nicer to use flags rather than positional arguments:

* You get some sanity checking for free
* Now there are default arguments (so the man page is accurate)
* You get a nice help message that describes the usage for free

I changed the 'port' arguments to 'addr' arguments so that the user may specify the interface as well (for example, 'localhost:8080' or something if they don't want to listen on a public interface and instead use a reverse proxy in front.