initial implement on perturbation theory

initial implement, waiting for the review of upstream
The notebook that describe everything in detail is https://github.com/qutip/qutip-notebooks/pull/12
Use NumPy doctring format (required for nice formatting in the autogenerated documentation). See the docstrings of other qutip functions for examples how the formatting should be.