Replace try/except by for loops, they are faster

When possible, replace also
     for k in xrange(len(fooCollection)):
         do_stuff(fooCollection[k])
by
     for bar in fooCollection:
         do_stuff(bar)
New member: self.referenceBandwidthFactor_
Speed up computeEquivalentNormalPDFSum

Use an a priori estimation to make one less iteration.
[src] added new file : it enables to compute the pdf on a 3D grid using multprocessing. Evaluation on grid of 128^3 elements is less than 2 mn using 8 cpu
[src] updated parallel computations of PDF on 3D grids: added more debug messages, added missing docstring, , uses of python logging instead of ot one. renamed functions to be more coherant
[src] minor cosmetics on parallel_pdf computations. Added also missing pool.close. Ongoing work
[src] fixed minor bugs and warnings
[src] added new function to compute the characteristic function basing on mp.pool
Do not parallelize 1D and 2D contributions into 3D, time is negligible

Set chunksize to N*N.
Remove pool.terminate() and pool.close() to avoid pool overhead; explicitly
delete dcf array to avoid memory exhaustion.
Do not let compute_3d_grid return grid, it is not always used

Moreover itertools.product is much faster.
Minor changes
Use cmath.pi instead of np.pi everywhere for consistency
[src] overloaded the PythonMultivariateRandomMixture class: added parallel_compute_pdf_on_3d_grid method which enables to compute pdf on 3 d grids using parallel processes
[test] added new test : this enables to check the evaluate the performance of parallel computations of pdf on a 4D case study
[test] minor bugfix in tests
[src] fixed memory leak due to missing pool.terminate/pool.close
[src] Removed MultivariateGaussianCharacteristicFunction file. Module uses ot version >= 1.2
[src] Removed useless code : we rely only on multiprocessing.Pool for parallelization
[src] Removed sequential computePDFOn3DGrid. Now we only use the parallel version
[test] updated test_4_3_perf_test.py due to changes in the library