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

Either you want the system to follow a motion command, and in that case you need to maintain it (i.e. write it permanently), and the 

OR

You want to write it once and make sure it gets there (in which case the timeout is only there to ensure the sample reached the component).

Basically, as soon as you start writing commands, the javascript UI becomes a component in its own right, and you need to be able to "stop" producing commands from it. You can't have both without being extremely confusing (and in the case of a motion2d, dangerous). In other words, the motion2d should IMO be written permanently *and* the UI should make clear that the command is active and allow to deactivate it.