Update gems and ruby version
Refactor output formatter
Add TaskRunner and TaskResult classes

Add two classes for better concurrent execution of tasks.
These will be used when refactoring Cloner, Puller and Statuser.

Better Design, YAY!
Add Task class

This class represents a task to be ran. It encapsulates the logic of
output and error stream passing to the spawn method. Also, wraps the
external process output into the TaskResult class.
Refactor `Cloner` to use `TaskRunner`

Doing what I said I would do in 51e2e67
Refactor `Statuser` to use `TaskRunner`
Rename `make_command` to `command` in `Cloner`
Refactor `Puller` to use `TaskRunner`
Allow `TaskRunner` clients to pass down a formatter
Add tests for `Cli`.

Since I forgot more than once to update the interface used by cli, I'm
adding some simple interface testing.

Sometimes I fucking miss a compiler.
Colorize output
Add gem version badge
Merge pull request #6 from rranelli/scary-refactor

Scary refactor