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

IMO nicer solution:
 - pass the resolved port to getWriter, it will make the POST fail early if the port does not exist and will allow ...
 - ... getWriter to do the logic if the writer is not there yet (i.e. to create if it does not exist), removing the need for addWriter
 - make PortWriters a proper object (not using singleton methods) and assign it to a singleton methods, i.e. in Tasks#initialize:
```
@port_writers = PortWriters.new
```

and in the POST:

```
Tasks.port_writers.get
```
 - rename getWriter to get. It is namespaced 

In general, Ruby's standard code style is CamelCase for classes and snake_case for methods.