Make volume manager more robust across restarts

When kubelet is restarted, volume manager loses its internal state. It rebuilds this state and calls attach/mount on volumes that may already be attached/mounted.

This issue is to track two items:

  1. Verify that if mount is called on a volume that is already mounted that it does not fail.
  2. If a pod was deleted while kubelet was unavailable, the associated volume will not be unmounted (since Kubelet would not know about it after restart). So volume_manager should find a way to recover the pre-attached volumes and populate actual state of the world on startup so that they get cleaned up appropriately.