frontend/sock_test: Added initial tests for frontend code.
frontend: Let listen_and_serve() return early if do_loop == 0.

That is, do not (re-)open any sockets.
frontend: Clean up UNIX sockets when closing a listener.
frontend/sock_test: Try to connect to the server socket.

This verifies that the socket is actually usable.

Also, it fixes a race condition in the test. The UNIX socket file is already
created when adding the listener. Thus, the previous synchronization between
the main thread and the socket handler thread did not work in most cases.
proto utils: Added sdb_proto_select().

This is a simple wrapper around select(2) to be used in cases where we only
care about a single file-descriptor being ready for a particular operation.
client: Let sdb_client_recv() use sdb_proto_select().
frontend: Implemented simplified error handling when creating threads.

There's hardly any reasonable error condition that might happen, so this
rather simplied approach should be sufficient.
frontend: Return an error if no handler threads could be created.
frontend: Make the number of handler threads configurable.

The number is passed to listen_and_serve() as part of sdb_fe_loop_t.
plugin: Record all loaded plugins and use that for improved error messages.
Merged branch 'master' of git://git.tokkee.org/sysdb.
sysdb: Use the flex scanner generator for reading input.

The idea is to implement a minimalistic parser which understands all valid
input and which is used to determine if an input line is part of an existing
command or a command on its own. This information will then be used to update
the prompt (and possibly to determine other information as well).

The scanner's YY_INPUT "method" is overwritten in order to use readline and
custom buffering for user input.