Added Gradient method and tests.

Gradient computes finite differences of vector-valued function using finite difference
I've found it helpful to include the channels used as input arguments, and include the direction type.  Here, you could use:
go func( sendChan <-chan, ansChan chan<-)

because the direction of the channels changes between goroutines. They are handled fine here, but it makes for better code in my opinion.