More tweaking.  Mostly asynchronous operation.

Gradient addition is now handled via Irecv, to try and extract more
bandwidth from concurrent operations.

Still need to make weight updates async.