Fixes to gossipinfo to prevent operational issues w/ node replacements

The current state of master and 1.2 branches as of this writing are vulnerable to an issue exposed by the rework of finding replacement IPs made in commit 6eb29e7649485278167f3349d66e8996ba137028. On replacing a node, there is a high probability of the wrong IP being specified as the replacement, confusing the cluster state considerably, requiring manual work to repair.

This is a critical bug, which will affect anyone encountering a need to replace nodes in operation.

This patch resolves that issue by tightening the manner in which the JMX gossip info details from Cassandra are parsed. It builds on the unit tests added by pull request Netflix/Priam#345, and corrects the errors reported in Netflix/Priam#348. The prior method split on slashes, which is not the correct boundary for grouping the information together, leading to errors in output of the information it is supposed to relay.

The unit tests added by @johaho have been further developed for greater coverage, with tests of host attributes made, and the count of items checked as well.

With this patch applied, a cluster was brought to life, cassandra-stress was used to put 2 million records with a replication factor of 2, and every node replaced several times over (at least 3 times) with no errors in operations throughout.

Please consider applying this pull to the branches indicated.