Persistent store and Virtual ID support.

Eventually, in order to support rebalancing, Swarm will need to store the requested state in a persistent way.
Also, rebalancing containers will require them to be re-created on a different node, resulting in a different container ID.

In order to keep IDs consistent across node moves, Swarm will generate a "Virtual ID" that is exposed through the API and guaranteed to never change.
The API takes care of remapping the Virtual ID back into the ID.