Display Packrat pending actions in the Action Center

This change suggests snapshot, restore, or clean actions in the Action Center according to the state reported by Packrat. Rough overview:

- The server tracks the last known resolved state of the Packrat lockfile and libraries.
- When the current state is not the last known resolved state, the server asks Packrat for a list of actions that would resolve the state. This list is included in the package state sent to the client.
- The client shows the list of actions in the Action Center, along with a button to perform groups of actions. 

It's stable enough to build on, although it does not contain all of the aesthetic changes we've discussed and will likely still require some tuning for accuracy. 
I don't think we want to use clientState() here as this mechanism is really only intended as a service for GWT (it actually isn't even persisted until the process exits). For server side persistent state we either (a) Use SessionPersistentState.cpp; or (b) Create a file within the scopedScratchPath.