Use autodiff fparser objects

* Generate derivatives, compute gradient and dot, factor out set_spacetime()
* Use exceptions to deal with errors in AutoDiff
* Add has_derivatives() method, CHANGE RETURN STATUS of AutoDiff()!
* Pass all data to print a meaningful error message into eval()
Doesn't make sense to wrap asserts in #ifndef DEBUG.
Using "#if 0" is a potentially confusing way to comment out code.
Wrapping an assert in "#ifdef DEBUG" is redundant
given the way we set up the -DDEBUG/-DNDEBUG flags
Update the test_headers make target slightly

This patch adds:

1.) The ability to test a specific subset of headers by running:
    make HEADERS_TO_TEST="numerics/parsed_function.h base/dof_map.h" test_headers

2.) Header tests in both opt and dbg mode, as opposed to devel mode.
    Since devel mode sets neither -DDEBUG nor -DNDEBUG, it misses both
    "#ifdef DEBUG" and "#ifdef NDEBUG" sections of the code, so
    testing both opt and dbg modes is more comprehensive.
rework to avoid GNU-make extension
tone down AutoDiff error reporting and make it switch-offable
allow installcheck include and examples targets to do some parallel forking
Use the environment's value of JOBS, if set
Cleanup of variational mesh smoother

* Removing custom typedefs
* Move constructors to C file
* 'uint' is not standard C++
* built-in types need not be passed as const
* 'if(' -> 'if (', 'for(' -> 'for (', 'while(' -> 'while ('
* Clean up function prototypes
* Fixing indentation
* Use C++ style casts
Replacing C arrays with std::vector
Declare variables as needed.
Pass mask, edges, and hnodes as vector& to readgr
Removing unused variables from readgr interface.