[Reviewer: Andy] Allow the ruby stats script to be passed a port (that it actually listens to)

This enhances the ruby stats gathering script to take a positional `port` parameter and use this when connecting to zmq. This replaces the old scheme where the port was inferred from the stat name (which no longer works now that bono and sprout use different zmq ports. 

I've also changed the usage of the c++ version to be consistent with the ruby version.

#### Testing

Ruby version:

* Retrieved all stats from a sprout node. 
* Retrieved all stats from a bono node. 
* Retrieved one stat from sprout node. 
* Retrieved one stat from bono node. 
* Subscribed to one stat from a sprout node. 
* Subscribed to one stat from a bono node. 
* Supplied various bad arguments. all caught by the script with a sensible error message.

C++ version:

* Retrieved a single stats from a sprout node.  
* Retrieved a single stats from a bono node.