keep references of ports and writers and remove them only after a timeout

The GC can collect them any time after the timeout.

Hopefully solves this Issue https://github.com/planthaber/rock-webapp/issues/2

I opted for two things:

1. The timeout parameter to be a GET param (inside the url ../port/write?timeout=30).
2. Instead of adding callbacks for each writer, there is a single callback who cleans all references to writers where the timeout time has passed (like a timeout based garbage collector). Still, there are the other options: callback for each, set callback time to next timeout

First of all, you don't get to decide how time critical the timeout is. If I am writing a motion command, I would really like the writer to get disconnected after 0.5 to 1s. Not hard-realtime style, but not "5s is fine" either.

Moreover, it is IMO making the whole implementation more complicated, and you DO have to poll through all the writers each time. That's O(N) vs. O(1). If we start to use the API for whole systems, it can very well get problematic. Given how low-complexity is the alternative, I don't see a benefit of the global timer approach.