Property File Snitch

Added a new snitch that uses the xml configuration framework.

It's something that we require on our cassandra deployment for a future enhanchement that will see accurate datacentre failover. We're actually using GossipingPropertyFileSnitch but can live with updating App.Config on the clients as the network topology changes.

Only issue I can see is if discovery adds new nodes to the cluster, the xml properties will be out of date. Currently this throws an exception but since the datacentre and rack are available in system.peers, which is queried on node Discovery, could we add a way to dynamically update a snitch? Maybe add update method to iEndpointSnitch that is initialized in ClusterManager like:

     discoveryService.OnTopologyUpdate += snitch.Update;

I'm happy to make another push if you agree?