Add ability to replace instantiators to DynamicFactory rather than

just on the AlgorithmFactory. Refs #970
Add first cut of IFunction1D export that allows inheritance

in Python. Refs #970
Remove errorMsg from CallMethod arguments. Refs #970

This way it will only get constructed if an error is actually going
to occur.
Add CallMethod structs for 2 arguments  Refs #970

Copy-and-paste needs tidying up
Refactor CallMethod with macros to avoid duplication.Refs #970
Flip input/ouput arguments around. Refs #970
Add IFunctionAdapter for access to IFunction's protected attrs.

Refs #970
Simple attribute handling Refs #970
Added parameter handling. Refs #970
FitPropertyBrowser now listens for updates

This ensures that fit functions can be defined at runtime and not
just when starting Mantid. Refs #970
Export IPeakLocation to Python

This requires the Jacobian class to be exported too along with
an update to the CallMethods* to add an overload for a single
argument. Refs #970
Add setProperty overloads for strings to IFunction export.

Refs #970
Fix issues with passing Jacobian to call_method

boost::python::call_method won't translate the Jacobian in it's raw pointer
form so we have to transform it into a Python object first and then
pass it along. Refs #970
Mild performance improvement for functionLocal/1D calls to Python.

These now avoid the heavy wrapper CallMethod and use the boost call_method
directly to avoid double locking the GIL and checking that the python
method exists each time.

Refs #970
Add active parameter support to Python fit functions.

Also add some debug statements to the Fit iteration loop.Refs #970
Change function1D & functionLocal signature to return outputs

The speed impact seems to be not as great as envisaged and this
signature makes it much simpler to write understandable functions.
Refs #970
Allow IFunction1D::functionDeriv1D to be overridden in Python.

If it is not overridden then it calls the base class method. Refs #970
Introduce new directory structure for python plugins.

There is now a single directory called plugins that contains sub-
directories for algorithms & functions. These get installed into the
package under ROOT/plugins/python. This requires new keys to find the
directories and deprecates pythonalgorithms.directories key.

Users will receive warnings about the old key being deprecated and are
instructed about what to do.

Refs #970
Merge branch 'feature/970_python_fitfunctions' into develop