clean up cython lbfgs optimizer

by declaring events (cpdef) we can attach it to the c++ (cdef) class.
Then we don't need to separate to functionality into python plus c++ and pure
c++
update modified fire and gradient optimizer

they are both simplified now that events is part of the unified
framework
lbfgs now derives from the cdef gradient optimizer
add H0 back in to the LBFGS result object
Merge branch 'master' into base_optimizer
Merge pull request #30 from js850/base_optimizer

LBFGS uses the optimizer base class