add invalid and user_data to Minimum and TransitionState

also update the migrate_db script.
deal more cleanly with failed normal mode calculations

raise a NormalModeError if a minimum appears to be a transition state or
a transition state is a higher order saddle.  This exception is caught,
a warning message is printed and the minimum or transition state is
flagged as invalid.
deal cleanly with invalid minima (ts) in rates and heat capacity
add a few more database tests
updates for the xy model
forgot to remove reference to printing/ from setup.py
add a script to launch a limited function gui from OPTIM files
Merge pull request #14 from js850/invalid

add `invalid` and `user_data` to Minimum and TransitionState database objects
fix bug in rate constant definition

it now agrees with PATHSAMPLE.
Merge branch 'master' of github.com:pele-python/pele
small change to scripts/optim_database_gui.py
change rate calculation interface

this was necessary in order to deal with multiple transition
states connecting two minima
remove unconnected nodes from rate graph
RateCalculation: use minima objects as nodes
add test for rate calculation

also move the class that does the optim database conversion from the
scripts directory to utils/
RateCalculation doesn't need ndof, so remove it

it was used in the occupation probability calculation, but it is same
for all minima so it would cancel out upon normalization
import changes from external package test_kmc

include support for committor probabilities
add another test for rates
clean up optim compatibility a bit
updates to optim compatibility