Release GIL in Construct/OptimizeProblem.
Release GIL in Construct/OptimizeProblem.

This change releases the Python GIL in the two most significant
functions in the trajopt python binding: ConstructProblem and
OptimizeProblem. The GIL is then reacquired when python callbacks need
to be evaluated.

This adds a performance penalty to the optimization, but lets Python
threads do anything else while the optimization is running.

personalrobotics/trajopt,personalrobotics/trajopt,personalrobotics/trajopt,personalrobotics/trajopt,personalrobotics/trajopt,personalrobotics/trajopt,personalrobotics/trajopt