internal energy calculation introduced.

The internal energy of the problem is evaluated using information from the
impurity problem only, so that user is not bothered by performing any additional
calculation.

Potential energy contribution is evaluated as:
<Hi>=Tr[ H_interacting ]
where H_interacting is the part of the model Hamiltonian describing full local interaction,
there including the Hartree terms (e.g. for example if H_interacting = U*(n-1/2)*(n-1/2)
rather than U*n*n).

Kinetic energy contribution is evaluated as:
<K> = Tr{Tr[H(k)*G(k)]} = Tr[Delta*G] + Tr[Eimp*N]
the internal trace being thermal one (sum_{iw,k}), the external one is  over spin-orbital degrees of freedom.
This is easy to check
Tr{ H(k)*G(k) } = -1 + Tr{ (iw + mu - Sigma(iw))*G(k)}
                = -1 + Tr{ (iw + mu - G0^-1 - Gimp)*G(k)}
		= -1 + Tr{ (Delta + Eimp - Gimp)*G(k)}
We separated the Eimp contribution (<E0>) from <K>, so that
<K> = Tr[Delta*Gimp]

The other terms are evaluated from thermal averages of suitable terms.

testing: a simple test has shown very good agreement with former results for the
1-band Bethe Hubbard model. More tests are in order.

The introduction of Energy calculations required to move the impurity Green's function
outside the ED_GREENS_FUNCTIONS module, so I opted to put them in VARS_GLOBAL so to be
able to access the as Self-energies.

With the occasion I updated the code here and there and renamed some functions.
ED_HAMILTONIAN now is unified for both double precision and double complex calculations.
Something similar can be done for the ED_DIAG.
Version 2.1
better calculation of Kinetic energy is introduced.

The kinetic energy is now evaluated as
<K> = Tr{H(k)*G(k,iw)}

Subtraction and analytical treatment of the tails is performed to
improve the results. Tests show significant improvement versus
previous procedure Tr{\Delta*Gimp}.
In turns previous method was limited to non-hybridizing systems.

The calculation of kinetic energy requires action from the user.
This potentially breaks the reverse communication strategy.
The calculation of the energy proceeds as follow:
local terms are evaluated just after the solution of the impurity
problem using thermal averages. These are stored in global
variables and always wrote to file.
Kinetic energy calculation can be performed on-call using
a generic routine in ED_MAIN. This latter requires:
H(k): the (LDA) matrix hamiltonian.
[W(k): the weights of each k-points, optional]
Sigma: the matrix self-energy of the problem.

This way is safe with respect to problem where the structure of
the lattice problem is somehow different from that of the impurity
problem itself, e.g. independent sites, spin-orbit systems, etc..

If the kinetic energy routine is invoked, kinetic energy
calculation is performed and the result is overwritten to file,
with a new columns dictionary.

- Reshape of the code:
to better hide ED variables and routines to the user we introduced
a new layer for ED_MAIN, which takes the place of DMFT_ED. This
module is private and only some routines are public.
The DMFT_ED module is now a simple wrapper of the necessary ED modules
and procedure that should be visible to the user.