tarweb 0.1.1

io-uring based static file web server, with SNI router
## TODO Improvements

* io_submit to batch up syscalls?
* send(MSG_ZEROCOPY): https://lwn.net/Articles/726917/
* SOCKMAP?
https://www.gnu.org/software/tar/manual/html_node/Standard.html

TODO:
* Enable EPOLLET & EPOLLONESHOT?
* Short read/write means no need to try again
* use event.data.ptr to find connection, not look up by fd
* EPOLLRDHUP?
* EPOLLHUP? (don't bother reading from closed connection)
* Keepalive connection
* request timeout
* support headerless, where all headers are already pre-inserted into the tarfile
* verify that archive doesn't have sparse files
* content-type
* FDO

## Useful references
* https://youtu.be/8NSzkYSX5nY
* https://youtu.be/36qZYL5RlgY

## Memory allocations per request

### Full file request

* 4096 bytes request read buffer.
* 40 bytes for 5 output queue entries
  * status200
  * if applicable: keepalive header
  * if applicable: transfer encoding header
  * file-specific headers (namely content-length)
  * contents

### Range read

* 4096 bytes request read buffer.
* regex match_results parsing range header
* 48 bytes (should be enough) for range header
* output queue entries (see full request)