node: add vpc_id and subnet_id properties
node: prefer dns_name if it exists in addr property
node: make addr property VPC agnostic

The Node.addr property now returns the first available address in the
following order:

dns name -> public ip -> private ip

Removed the check for vpc_id in the Node.addr property given that the
instance will either contain a public dns name, public ip address, or
private ip address or not based on how it was launched (ie vpc or
non-vpc). In any case we always want the most 'widely available' or
most easily connectable address. If none is available Node.addr returns
None.
listclusters: use empty str if Node.addr is None