converge function, with a bunch of behaviors so far. failing tests. gotta figure out hashable dicts.
bit of code formatting improvements
add freeze/unfreeze functions for converting objects to pyrsistent versions.
lint
make convergence work again

- freeze the launch_config in DesiredGroupState
- use a collections.Counter for the steps, to give us multiset behavior
use constants for server states, and implement deletion of building servers upon scale down
delete servers that have been building for too long.
some refactor and lint
Merge branch 'otter-is-functional' into converge-function
fix documentation of servers_with_cheese, and also use some constants.
use persistent bags for the steps instead of a collections.Counter
pyrsistent 0.4.0 has pbag in it
d'oh, lint
depend on an unreleased version of pyrsistent for now
Merge pull request #702 from rackerlabs/converge-function

Converge function - server creation and deletion [AS-376]
Merge branch 'master' into metrics

Conflicts:
	otter/convergence.py
	otter/test/test_convergence.py