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
add a new table SystemProperty to the database

this is for storing system wide properties like natoms, potential
parameters, etc
set the database version to 2

update migrate_db.py
remove the Distance table from the database

update _distance graph, the only place this was really used.

TODO: migrate the database to a new version

TODO: remove any other mension of the table in the repository
remove mention of database distances from repository
change schema version of database to 3

update migrate_db.py
LJCluster sets some system properties in create_database()

also BLJCluster
use abstract methods in optimizer base class

use syntax

virtual void run() = 0;

rather than

virtual void run() { throw runtime_error("not implemented"); }
reimplement Database.add_property()

the value type is determined automatically unless specified
set database version back to 1

and revert migrate_db back to before these database updates occurred.
Since these changes only add to, or delete from, the existing database
without modifying the existing tables the database does not need to be
manually updated (migrated).  sqlalchemy will add the new table
SystemParameters automatically, and ignore the (now deleted) table
Distance, if it already exists.
add a assignment operator to Array.h

operator=(Array x) copies the data into the this->_data.  It will resize
the data if it is the sole owner, otherwise throw an exception.
turn off debug printing in array.h
Array operator= now will only resize if _data==NULL
dump_database.py prints sytem properties now
Merge pull request #11 from js850/array_problem

define assignment operator in Array