Refs #8913 Add additional getter/setters to AlgorithmHistory.
XRefs #8913 Fix algorithm history typedef dependencies.
Refs #8913 Add new methods to Algorithm class for nested history.
Refs #8913 Modify Algorithm and DataProcessorAlgorithm

These classes should now capture the history of child algorithms.
Refs #8913 Give workspace properties a temporary name if required.
Refs #8913 Add nested history test in AlgorithmHistory.
Refs #8913 Correct implementation logic between Algorithm and DPA.
Refs #8913 Add a couple of additional methods for convenience.

These are consistent with the functionality that is available in WorkspaceHistory.
Refs #8913 Fix bug(s) with copying algorithm history objects.
Refs #8913 Add the ability to turn off algorithm recording.

This changeset allows us to use enableHistoryRecordingForChild() to turn
off recording the history for a DataProcessorAlgorithm. This will be useful when
we have large algorithm histories.
Refs #8913 Add unit tests for nested history in DataProcessorAlgorithm
Refs #8913 Set exec count after algorithm is executed.

Otherwise LoadProcessNexus modifies the execution counter when it loads
histories from file and the parent algorithm gets the incorrect exec count.

As you should never need to set the exec count except in Algorithm, I've made
the method private and made Algorithm a friend class.
Refs #8913 Modify PropertyHistory constructor to take property pointer

This also gives WorkspaceProperty a temp value if it it doesn't have one.
Refs #8913 Add method to create child algorithms from history.
Refs #8913 Export Workspace/Algorithm/Property histories to python
Refs #8913 Fix failing unit python tests.
Refs #8913 Add python API unit tests.
Refs #8913 Pass history recording parameter as arg to createChildAlg.
Refs #8913 Add unit test for disabling history in python
Refs #8913 Remove redundant code from python simpleapi.