add `invalid` and `user_data` to Minimum and TransitionState database objects

also update the rest of the code to deal cleanly with situations where the minimum appears to be a transition state or the transition state appears to be a higher order saddle point