Added separate spatial and charge dependent exponential potentials (closes #8)

Separated the old exponential potential to spatial and charged
contributions. The old potential can be restored by using the
ProductPotential, but the new spatial part can be combined with other
potentials. Especially, it can be connected to the power decay
potential to construct the electrostatic potentials between Slater
orbitals (together with CoulombSummation).
Small tidying

Small code tidying and added documentation.
Added more general bond bending potentials (closes #10)

Implemented the possibility to add exponents to the cosines in the bond
bending potential.
Made the calculator return copies of the calculated arrays

Pysic used to return the calculated forces etc. as they were. However,
if ASE is run with constraints, the constraints may modify the forces
in place thus changing also the arrays stored in Pysic. So, if you did
a constrained calculation and then wanted to access the raw
unconstrained forces, that was not possible without a recalculation.
Now, since copies are passed on to ASE, the real forces are available
as they should.
Fixed Ewald bugs

Fixed two bugs in the calculation of electronegativities due to Ewald
summation:

- the charged background term had the wrong sign
- direct space terms were ignored if an atoms had the exact charge of
0.0, even if there was a contribution to electronegativity

Also added a new charge potential, but it is yet untested.
Fixed severe bug in ProductPotentials (closes #20)

ProductPotentials had a bug where multiplier potentiasl were added
severeal times when setting up the core, if the leading potential had
several targets. Fixed.
Stability fixes (closes #21)

Fixed some issues where two atoms on top of each other would lead to
NaN energies. It is still possible to make the system explode by
putting atoms with a singular interaction on top of each other, but
there are cases (e.g., springs) that should handle being superposed.

Also fixed a bug in neighbor list generation. If cutoffs are longer
than cell size, the FastNeighborList will fail and thus Pysic falls
back on the ASE neighbor list. The switch was determined based on
maximum cutoff, but the list generating is done by cutoff + neighbor
list skin. So, itf your minimum cell size happened to be between max
cutoff and max cutoff + skin, Pysic tried to use FastNeighborList,
which got stuck because the cutoff was too long for making the space
partitioning.

Finally, there was a bug in monitoring the core when constraints were
applied, which would lead to Pysic thinking the core was not up to date
since the constrained and unconstrained data did not match.
Added absolute valued charge potential (closes #9)

Added a pair potential for absolute charges

    V(q1,q2) = sqrt(B1*B2)
    Bi = ai + bi * abs(qi - Qi)**ni

combined with the exponential potentials, this should allow one to
create the charge depenedent attractive and repulsive potentials of
COMB formalism.

This also marks the implementation of the base COMB potential.
Unfortunately, there are no wrappers for complicated potentials in
place yet, so one must build the potential piece by piece. Also the
polarization including components of later revisions of the potential
are not available (as there is no polarization implemented).