Refactored Slave to supply separate listen method.  Allow instantiation and unit testing without zmq context.

launchSlave.py was re-written accordingly. adding a Slave.listen() call on the slave instance.

This allowed functional tests to be written without resorting to launching a separate shell script or creating a subprocess internally.
Corrected uniform and randn distribution generators to call self.imul instead of mul
Added notebooks/.ipynbcheckpoints/ folder to .gitignore
Refactored Slave parseSubVectorCommand to generically handle methods in the current format.  Added unit tests for Slave class

Slave.parseSubVectorCommand refactored to split along colons and parse parameters. The switch statement has been moved to a dict in the constructor mapping commands (i.e. "iadd", ""imul") to Slave methods (i.e {"iadd": self.iadd} ).  Will making editing the command structure and adding commands a lot easier and more reliable going forward.