Store a list of all StorageValue instances for each node.
Stop nodes from using storage directly by using storageAction instead.

This is the first step to move all storage writing to commits
(transactions) that can cover multiple nodes/actions at once.
Commits will return twisted deferreds and thus be async operations.
Removed unnecessary node._storage_values.

StorageValue now uses storageAction.
Start making object store loading/usage async.

Basically this means assuming that all storage actions return twisted
deferreds. While they don't right now, all object store methods that
use the storage backend now return deferreds.
CommandQueue.createCommand now returns the created node.
Use commit in xmlrpc attribute.py.
Use commit in user manager user syncing.
Use commit in xmlrpc config.py.
Use commit in xmlrpc container.py.
Use commit in xmlrpc counter.py.
Use commit in xmlrpc device.py.
Return touched nodes from device remove/autoassign and ip.prune.
Added treenode.commit helper method.
Use commit in xmlrpc network.py.
Update network add/remove/prune to include affected networks.
Use commit in xmlrpc permission.py.
Use commit in xmlrpc baserpc.py.
Use commit in xmlrpc view.py.
Template.apply now returns a list of all modified nodes.
Use commit in xmlrpc template.py.