Graph limits

Fixes #787
I don't think we need this. It's confusing to have deferred promises sitting around looking like normal variables. Since we already cache the deferred promise in cockpit.util.machine_info() we should probably just call that every time we need the info.