add system class for xyspin system
cythonize the xymodel spin potential
fix gui main window expanding issue
updates to xyspin system
updates to optimizer and lbfgs

do more initializations in initialization lists
transpose matrix returned by findrotation_kabsch

to make it consistent with findrotation_kearsley.  Actually they're not
totally consistent because findrotation_kearsley returns the distance as
well. Eventually we should make these two fully consistent
use abstract methods in optimizer base class

use syntax

virtual void run() = 0;

rather than

virtual void run() { throw runtime_error("not implemented"); }