WIP: Add atomic resource reservation to nodes.

Add explicit resource reservation to nodes.  To be used to handle port allocation amongst other things. 

Only updated a single types.go, since I expect some iteration here.  Will update all types when we reach consensus.
I don't get why this is something explicit in a client, as opposed to being implied by the primary intentions of other actions.  Why do I want someone being able to futz with resources, rather than doing whatever it is that they want to do that requires resources be futzed with?