Ensure that the docker graph directory exists

Clean re-submission of https://github.com/bflad/chef-docker/pull/216, with tasks from there here:
  - [ ] I just want to confirm that the graph directory is relevant only to upstart and not any of the other service management types.
  - [ ] There are multiple difference commits going on here. Can you remove the commits related to the upstream merge and cacheing the key. That should be addressed in a separate commit.
  - [ ] Can you put the check for the node attribute as a chef resource guard instead of a conditional check?
  - [ ] Please add a chefspec test case to test your behavior.