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
I am working on using the Qobj wherever possible as my next task.

We went for more general names, i.e. drift, ctrls, target, initial, dyn_gen etc because in some cases (e.g. Lindbladian, symplectic) they are not necessarily Hamiltonian / unitary. (on advice - I am no expert). This is why I added the optimize_pulse_unitary function, so that the parameter names would be familiar for what I imagine would be most potential users.