First upload of the qtrl modules

Main module control.ctrlpulseoptim provides functions for optimising control
pulses for quantum systems. Relies on the other classes for processing.

Uses the BFGS (actually primarily the L-BFGS-B) algorthim, which is a quasi-second order Newton method for multivar function optimisation

Examples in the 'examples' folder to demonstrate usage.
1. Hadamard - a simple example of Hadamard gate synthesis
2. Lindbladian (open systems) - amplitude damping channel example
3. Symplectic - a coupled oscillator example
4. QFT - a 2 qubit example, showing alternative (more configurable) method for invoking the optimisation
It looks like you are suggesting that once passed as Qobj, we would then maintain them as arrays (by calling the .full method). It looks like Qobj has some nice methods, e.g. dag, that could be used within the code. Is there any reason why we should not maintain them as Qobj, other than it would take a while to implement these changes?