node: fix Node.root_device_name for misconfigured AMIs

Apparently EC2 AMIs are allowed to specify a root device name that is
*not* in the image's block device mapping and amazingly they're not only
allowed to be created but they also *work* by some magic in the EC2
backend. Any instance started with a misconfigured AMI also reports the
same root device name that is *not* in the instance's block device
mapping. This was causing the real root device to be recognized as an
external EBS volume when calling Node.detach_external_volumes().

For example: CentOS 6.4 (Marketplace AMI) ami-bf5021d6

This patch to the Node.root_device_name attribute first checks that the
root device name returned by EC2 is actually in the instance's block
device mapping before returning. If it's not it attempts to fetch the
*real* root device from the instance's local metadata server assuming
the instance is running and SSH is up. If SSH isnt up the code looks for
common mistakes like /dev/sda1->/dev/sda and 'assumes' a root device if
possible.

closes gh-238