implement watch

i'm planning on writing some integration tests (start 3 servers, send requests, verify results), and i need to be able to wait for files/directories to become certain versions.

=================

Wait for a file to get created. This returns immediately if the file already exists.

    GET /file?wait=0 HTTP/1.1

Wait until the file version is at least 1. This returns immediately if the file version is already greater than or equal to 1. This also returns if the file doesn't exist, or it gets deleted before reaching version 1.

    GET /file?wait=1 HTTP/1.1

Wait until the file gets deleted. This returns immediately if the file does not exist.

    GET /file?wait=-1 HTTP/1.1