CASSANDRA-5339 Add YAML network topology snitch

In order to support having a Cassandra cluster spanning multiple data centers, some in Amazon EC2 and some not, I'm submitting a YAML network topology snitch that allows one to configure 'preferred addresses' such as a data-center-local address. The new snitch reconnects to the node via the preferred address using the same reconnection trick present in Ec2MultiRegionSnitch.

I chose a new YAML format instead of trying to extend cassandra-topology.properties because it is easier to read and allows for future extensibility.