Set up Dirac inversion functions to return results in tuple

Now, instead of a verbosity argument, these functions have an argument
to determine whether to return additional output besides the solution.
The additional output is all contained in a tuple, and gives the number
of solver iterations, the residual and the total CPU time.
Added point_source generation function to Lattice.
Added extensible compute_propagator function to propagator.py
Moved analysis code into analysis sub-module.
Moved wilson loops analysis code into analysis sub-module.
Fixed bad Wilson loops file name.
Updated tests to use analysis sub module
Added compute_propagator test
Changed smearLinks function in C++ code to stoutSmearLinks.
Exposed stout smearing function to python
Added link into test_compute_propagator to fix it.
Updated compute_propagator to use source template rather than function
Added propagator smearing function to propagator.py
Added empty tests for some of the new functions.
Changed syntax in smear_propagator to make it nice and flexible.
Removed line of code in smear_propagator that wasn't doing anything.
Updated compute_correlators example to reflect changes in source code
Updated compute_mass example to reflect new code layout.
Made write and load datum functions visible to dir()

Added docstrings.
Added callback function generators for extract and write datum functions.