Code refactoring.

The first one is the creation of a more general typedef for a hashtable in
order to avoid multiple typedefs that basically points to the underlying
hash table implementation (glib's).

Another important change is that the function that handles a connection
request now returns the connection response object to the caller who, in turn,
sends the response back to the client. Since all kinds of requests have a
corresponding response, this code would be duplicated.