feat(controller): add container state via FSM

This makes a container's state directly managed via a Finite State
Machine (see http://en.wikipedia.org/wiki/Finite-state_machine).

With this new behaviour, containers can be in one of 5 different
states:

1) up
2) down
3) initialized
4) created
5) destroyed

A diagram that shows the container's transitions as it goes from
state to state would be nice, but is not necessary for this commit.
I've noted this as a TODO feature in the documentation.

I have also set the container's FSM to protected, so that nobody can
directly change the FSM's state. Only a call to the model's functions
that have a @transition decorator will be able to change the state.

fixes #699
refactor(controller): optimize docker build layers
fix(controller): install git

We need git at the moment as a hack to run pip install for
bacongobbler's fork of django-fsm. Once that feature branch
has been merged into upstream, we can remove this hack.
Merge pull request #726 from opdemand/fsm

feat(controller): add container state via FSM