Add an option to do accumulation operations in host memory, instead
instead of copying to GPU memory and back.  This saves GPU memory
(all weight server data is in host memory), and is possibly faster
if transfers are going through host memory anyway.

Update the MatrixHelper with additional methods to make this happen.
Try out using host memory for imagenet computation.  Still significantly
slower then copying via GPU memory, but better then before.

Receive the first worker update directly into the gradient buffer to
avoid a pointless zero'ing out.