PWEB-3973

added two new classes to encapsulate the logic behind roundtrip and service server pings. provided a block based completion for both, removed a bunch older code for performing the ping from the view controller.

also, I'll put a long running question here thats come up twice when working with blocks. according to my understanding of the block rules, we need to add a __block modifier to any enclosing scope which the block needs to modify. that is done, for example, when we sum up the values in an array. but it does't appear to be necessary when the values themselves are properties on an object, for example, when we increment self.pingsCompleted. Is this because the block already contains a strong reference back to self? why don't we need to include a block modifier in the pingsCompleted property?