Reimplement Applications as a subclass of Classes

Applications are like Classes an ordered set, so we inherit from Classes
and thus reuse the same, limited functionality.

The concept of negation requires to override extend() and append().
Since we would like Applications to keep a memory of negations they
embody, for instance for later merging (extending) into another list,
thereby removing elements, the negations are kept in a separate list.

Also, switch from nose to unittest.

Signed-off-by: martin f. krafft <madduck@madduck.net>
4 files changed