Native code

redo some of the core of pele in c++.  some new features are:

- there is a new lbfgs compiler written in c++

- some of the core potentials are redone in c++

- there is a modular framework to easily add new c++ potentials (well, pairwise potentials at least)

- with the c++ lbfgs and a c++ potential minimization can now be done entirely in a compiled language.

- a minimization is between 2 and 15 times faster (15 times faster for a tiny system like LJ13, about 4 times faster for LJ38 and 2 times faster for LJ100)

A next step might be to replace some of the other core components like NEB, or find transition state, or lowest eigenvector search also in c++, so those parts can be done without returning to python also.