Synchronized this version of C2Ray.F90 with the H-only one (C2Ray3Dm).

Added timing routines, removed some debugging output.
Updates sourceprops_cubep3m.F90 for running early heating models.
All star forming halos are now source of x-rays and the luminosity
is calculated from the halo mass (in the same way as e.g. Mesinger
et al. (2012).

The source lists therefore only have 5 columns, the 6th column with
the PL luminosity has disappeared. Please make sure you use 5 column
source lists.

The normalization has also changed. The PL ionizing photon rate is
now calculated in the radiation module (pl_S_star) and used here
to normalize the rates (PLNormFlux).
The sourceprops module for the test problem has been updated to take
ionizing photon rates as input for the PL sources. Before we had to
supply normalized photon rates (normalized to the Eddington luminosity
of a 10^6 M0 object).

Also removed the rsrcpos array since we do not use it.
Changed the initial conditions for the ionization fractions. RECFAST
shows that the H in the IGM should be around 2e-4 ionized around
z=30. We use this. For helium the situation is less clear, RECFAST
gives essentially zero. We use this 1e-15 for HeII and zero for HeIII.

Also added a protection routine for ionized fractions. If larger than
1 they are set to 1 and smaller than 0 they are set to zero.

This is called from evolve.
Major reworking of evolve module, driven by synching with the evolve
module from C2Ray_3Dm (H-only).

- new logical to test whether we have use the local chemistry option.
- tn is initialized to 1
- evolve3d is now called with time as the first argument.
- added calls to the timing routine.
- made sure that the iteration dumps are properly written and read.
- disabled the use of the scrambled source order (SrcSeries)
- removed many debug write statements
- protecting ionized fractions against unphysical values now moved
  to a subroutine (in module material)
- subbox approach now also looks at sum of BB and PL photons lost.
- using new structure field photo_out (all outgoing photons) to
  check for photon loss.
- moved adding of photon losses to current rate to separate routine
  (distribute_photon_losses)
  This routine is NOT correct though, it only considers 7 frequency
  subbins. It also only adds them to the photo-ionization rates, not
  the heating rates. This needs to be fixed. Low priority since the adding
  the photon losses is dodgy business anyway.
- calculation of special scaling variables for doric (yfrac,zfrac,
  y2afrac,y2bfrac) moved to separate routine (prepare_doric_factors).
- replaced if statement in weightf function with case statement.
Now the same version as in C2Ray_3Dm, including intermediate timings
routines for determining code performace.
Added new variable xray_phot_per_atom and removed the power law source
from the phot_per_atom array (now only two source types).

Added new variable pl_S_star_nominal for normalizing the PL source
in the same fashion as the BB source. The scaling by Eddington luminosity
of mass_nominal object should not be used inside the program. It can
still be used upon input.
Added dump_dir parameter for directory where iterdump files should be
placed.

Added unit number for timings file.
Synchronization with C2Ray_3Dm code. Some minor difference.
In the parallel loop only tn is private now.
Disabled the scaling of the rsrcpos array as it is no longer being
used.
Enabled cosmological cooling for cubep3m early heating simulations.
Added the minimum and maximum frequency parameters for PL source.
These are either read in from input or taken from c2ray_parameters.

Added a field photo_out to the structure photrates. Needed for collecting
outgoing photons for photon loss calculation. Note that this field
also was added to the two routines working on photrates structures:
photrates_add and set_photrates_to_zero

Fixed (currently harmless) bug: outgoing heating rate is in-cell but
was calculated as in+cell.
A copy of the older version of sourceprops_cubep3m.F90 which considers
the PL source to be a special column in the source list.
Useful for specifying special PL sources (QSOs), just as Martina
did.