Add initial rewrite of libpb.{event, signal} called sigev.

The initial framework has an event dispatcher, event context, events
and some tests.
Add vim(1) swap files to ignore list.
Flush out tests for sigev as currently implemented.

Refine the implementation of sigev as required by the unit tests:
 * allow Event to be initialised without arguments (for subclassing of
     dispatch)
 * auto create Event() for post if eventorfunc is not an Event
Add the Signal() and SignalProperty() classes.

The Signal() class provides a means of asynchronously calling callback
functions.

The SignalProperty() provides an easy way to have a Signal() as a
property without having to instansiate a Signal() for each instance of
the class.
Add skeliton of ExternalSource framework.
Split LocalStack() and Singleton() into sigev.util and add unit tests.

Allow the unit tests to be run more easily and refactor.
Refactor Event() and add AdeptFuncEvent().

Make Event() a purely abstract base class with FuncEvent() replacing
Event()'s capability and create AdaptFuncEvent() that only passes the
arguments supported by the receiving function.

The intended use for AdaptFuncEvent() is for Signal()s to provide a
loser coupling with slots.  The processing of the arguments are done on
dispatch() to save space (args and kwargs) and to raise TypeError() in a
consistent mannor to FuncEvent().
Refactor SignalProperty() into util.FactoryProperty().
Move sigev code to `core' submodule.