Fixed how connection ops are divided.

When a connection crosses partition boundaries, some of its operators
must go on one side of the boundary, and some must go on another. Added
a function ``split_connection'' to handle this.
MPI fixes.

* Printing probes used to print the address of the probe's target
  signal, which would make comparing chunks across machines using
  strings invalid.

* When validating that chunks were sent correctly, if the validation
  fails it will raise an error saying so, and print out the original
  chunk string and the remote chunk string so the user can inspect the
  differences. However, for large chunks this will not be workable, so
  we should come up with some way of showing the user just the parts of
  the strings that are different.
Partitioning-related improvements.

* Separated partition-creation related code into separate file
  partition.py.

* Improved, more consistent vocabulary in partition code.

* More complete documentation in partition.py.

* Removed a bunch of debug statements.