Feature/user provided gradients

#### Summary:

Adding a special var that makes it easier for users to specify gradients. Would like to get this merged for 2.2.0 so a user can hack at their models.

#### Intended Effect:

A user can call the precomputed_gradients function to create a var with the proper chain function.

#### How to Verify:

Tests have been added to src/test/unit-agrad-var/internal/precomputed_gradients.hpp

#### Side Effects:

None. This isn't called by any internal method.

#### Documentation:

The class and function has been documented at the code level using doxygen.
The user-facing documentation is currently in draft form as a wiki:
https://github.com/stan-dev/stan/wiki/Tutorial:-Using-a-User-Function-with-Gradients-in-CmdStan-v2.2.0-%28aka-how-to-hack-around-Stan%27s-auto-diff%29

#### Reviewer Suggestions:

Bob.