remove a test that rarely passed
add wrapper and test for LBFGS_CPP

also replace default LJ with cpp LJ
add back in except * rather than except +

use except + only in constructors now

cython has kind of strange behavior.  if a class derives from another
class then __cinit__ is called once for each of them.  This can lead to
memory loss if a pointer is overwritten.  Also, __dealloc__ is called
multiple times as well.

be more careful about deallocating memory.  Do check for if self.thisptr
!= NULL.
add test for cpp LJ
add test for pythonpotential

move CppPotentialWrapper to _pythonpotential.pyx
add test for LBFGS_CPP
clean up the c++ source a bit
add test for cpp BLJ potential
Add test that c++ exceptions are translated to python

also change some "except *" back to "except +".  The function run() in
the c++ lbfgs still must be declared as except * or else the python
exceptions generated by a c++ wrapped callback function kill the program
with no warning.

The "except +" change had to be made because c++ generated exceptions
were not being tranlated back into python.  They were printing a warning
message and killing the program.
save some changes
add "except +" to run() in the cpp lbfgs

this means that all exceptions generated in the python potential will be
ignored.  This is not idea, but we couldn't figure out a way to get both
python and c++ exceptions to be translated back into python. An error
message is printed