Cleanup the code and refactor gate joining and constant gate processing
in the indexed fault tree class.
Add detection of local minimality for OR gate upon passing inputs
to AND gate.
Join module creation with original module discovery.

This is giving a huge performance degradation which will be
investigated.
Adjust module creation for corner cases. Add logging.

The corner case is when events are shared between gates so that there
is chain of non-modularity due to this small group of events.

The other case is when the gate itself is modular but there is
non-shared children present within the module that can be grouped
together.
Check children if they share children with non modules.

This helps to group children that don't share anything with outside
world into new modules. No speed improvement for current input files.
Pass and gather pointers to sets instead of copies.

This improves running times for cut set generation but not minimization.
Update code comments and documentation for the algorithm.
Cleanup for Google style and Cppclean.
Add Baobab 1 benchmark test from XFTA.
Add Baobab 2 benchmark tests from XFTA.
Add CEA9601 benchmark test from XFTA.
Update documentation with recent changes in the code and analysis.
Update code documentation for release.
Update the test input running python script.
Merge branch 'develop' into coverity-scan

Conflicts:
	doc/code_structure.rst
	doc/coding_standards.rst
	doc/fault_tree_generator.rst
	doc/fta_implementation.rst
	doc/fta_mcs_algorithm.rst
	doc/gui.rst
	doc/input_file.rst
	doc/installation.rst
	doc/monte_carlo_simulations.rst
	doc/scram_description.rst
	doc/speedlog.txt
	doc/todo.rst
	tests/input/fta/run_inputs.py