Updates to ad_jonas_rauch.jl:

I had started working on my previous updates to Jonas' work again before I realized that Tom had made some changes.  My changes are a bit more significant, so I wanted some feedback before merging.

In this commit:

* Modulize
* Remove ADForwardBase, change to Real
  (Is ADForwardBase useful?)
* Update tests
* Rename `Gradient` -> `gradient`, `Value` -> `real`

So, nothing too significant, but it works now with "using AutoDiff".  A few of the function names have changed.  

I'm realizing as I type this that changing `Value` to `real` only really makes sense when considering the type as a Dual number, which it really isn't here, so maybe `value` or something similar would be better.

While this seems to work fine, I think forward AD mode still needs a bit of work (and maybe needs to be largely rewritten, depending on the direction we want to go).  I'm looking forward to having a conversation around this soon.