Added a Levenberg-Marquardt optimiser

Added the files: src/LevenbergMarquardt.py, src/leastsqbound.py, which implement a Levenberg-Marquardt
optimisation. Has a similar syntax to Optimiser, but requires the function to be passed rather than
the likelihood function (therefore cannot optimise noise parameters, GPs etc). Added leastsqbound
(from https://github.com/jjhelmus/leastsqbound-scipy/, Copyright (c) 2012 Jonathan J. Helmus, see file
for full license) that uses parameter transformations to enable bound optimisation. This is only enabled
for bound optimisation. The error estimates from LM optimisation are useful to seed MCMC, and also can
be used to compute an evidence approximation (via BIC, AIC or Laplace optimisation). Care needs to be taken
as to the reliability of the uncertainties compared to an MCMC, and this should generally only be used as
an approximation.

Also added an example file examples/LevenbergMarquardt_eg.py demonstrating its use.