Logging mechanism for Synnefo management commands

Design doc for the implementation of a logging mechanism for the
Synnefo's management commands.

Issue #3: Log all stdout/stderr for snf-manage invocations
Fix console output for management commands

From Django's documentation:
  When you are using management commands and wish to provide console
  output, you should write to self.stdout and self.stderr, instead of
  printing to stdout and stderr directly.

This patch fixes the managements commands to use the proper
stdout/stderr objects.

Issue #3: Log all stdout/stderr for snf-manage invocations
Use SynnefoCommand for django-admin commands

Instead of django's BaseCommand class, use out SynnefoCommand which
takes care of logging the command and its output.

Issue #3: Log all stdout/stderr for snf-manage invocations
Implement NewlineStreamHandler

When StreamHandler writes a formatted log message to its stream, it adds
a newline terminator. This behavior is inherited by FileHandler and the
other classes which derive from it (such as the rotating file handlers).

Starting with Python 3.2, the message terminator will be configurable.
This has been done by adding a terminator attribute to StreamHandler,
which when emitting an event now writes the formatted message to its
stream first, and then writes the terminator. If you don’t want newline
termination for a handler, just set the handler instance’s terminator
attribute to the empty string.

This class implements python's 3.2 StreamHandler.

Issue #3: Log all stdout/stderr for snf-manage invocations
Log Synnefo management commands to files

Create 'SynnefoOutputWrapper' which replaces Django's 'OutputWrapper'
and logs the command and its output in a file.

Fixes #3: Log all stdout/stderr for snf-manage invocations