Improved Fit handling of errors and annotations

Errors of fit parameters are now in an ordered dict
Fit.error. The covariance matrix output from the fit algorithm
are in self.covariance.

Fit now uses __unicode__() so it can print +/- error.

Pulling.plot() now calls unicode(fit) and annotates plots with
free parameters and their errors.

Implemented prototype of Fit.extends() class method which takes
another Fit object as the first parameter. It uses parameters
found there to populate parameters for a new fit. Currently, all
the parameters from the old fit must be found in the new fit. To
change this behavior, remove parameters from old fit that do not
appear in new fitfunc before creating a new fit object.