Simplify actor system by removing Dispatcher and .dispatch, .remote

The DispatchedOperation structure was superseded  by the RemoteOpeartion architecture, and the duplicate functionality isn't needed any longer. This allowed the Dispatcher to be removed from the Actor system, as well as other simplifications. The .dispatch and .remote on Operation have been replaced by .distribute on DataSource, which distributes the individual element operations. The .dispatch operation was created so that all children operations of an operation would be run on the cluster router, because it used to be the case that the tile operations were wrapped in another operation (that would then have .dispatch called on it). This level of complexity isn't needed anymore with RasterSource and .distribute, so was removed.

Also as part of this pull request and #655, other TODOs were addressed.