Change ContainerState object to be immutable

This object is a docker response object from a call to docker, in no point
during the life of docker-client should this object be changed, except by
querying docker again for state (and getting a new object).

Therefore there is no need to have any setter methods on the objects.

For tests I added json fixtures that are the way the object is being
created in runtime anyway - a much better way to test than using set
methods.

For more reasons why immutable is better (where relevant as in this case)
http://www.javapractices.com/topic/TopicAction.do?Id=29

Also added the ContainerState.Paused and ContainerState.Restarting
properties.
Add ability to pause/unpause containers
Merge branch 'rohan/pause'

Resolves #72.