Change the command plugin to pretty print results

The current behaviour of the shell and command modules is
difficult to read. This adds a slightly smarter printing
mechanism. For example, with this commit applied, the output of a
command with verbose enabled looks similar to:

changed: [companyprod5] =>
    cmd         swap_to_staging.sh
    end         2013-01-22 21:59:28.003997
    stdout

        git branch -D staging_old...
        git checkout -b staging_old...
        git branch -D staging...
        git checkout -b staging staging-web-tag...
        Last commit on the branch:
        commit 540a643b26b1764e4e3a32db83c85addfbeca78e
        Author: John Smith <jsmith@company.com>
        Date:   Tue Jan 22 02:45:24 2013 +0000

            Revert accidental deletion.

            Reviewers: jane

            Reviewed By: jane

            Differential Revision: https://phabricator.company.com/D5531

    changed     True
    start       2013-01-22 21:59:27.987241
    delta       0:00:00.016756
    stderr
    rc          0

A feature of note is that the stdout is indented in a block to
make it clear that the output from 'stdout' is the indented block.