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
That makes sense. If you want, I can try to take some of this on in a new PR, then, that provides reasonable logging utilities for use internally to QuTiP. Might be a few days for me to get something down, but my idea would be to provide a ``get_logger`` function that uses your ``inspect`` trick to add module names, and optionally (using ``qutip.settings``) disables propagation if a default ``StreamHandler`` is added. That way, it could be used inside or outside of IPython sessions with minimal confusion.