Efficient Application of CPTP Maps to Subsystems

Hi all, 

A little while back, we had [this conversation](https://groups.google.com/forum/?fromgroups#!topic/qutip/AlMMzkRtijo) about adding some code I recently wrote to QuTiP. I've got a fairly primitive version of the code working now, so I'd like to see what you think. I tried to mimic the appearance of partial_transpose as much as possible, for familiarity to QuTiP users. Things yet to be done include:
+ Rewriting the 'kernel' of the efficient application code in Fortran 90, f2py-ing and wrapping for increased speed
+ Ensuring that no un-needed copies of the various arrays involved are being made
+ (Perhaps, if you're so inclined) adding more structure to superoperators objects, so that they can be more easily handled.

I think we've got a good start, let me know what I can do to bring the code up to your standards.

Cheers,

Ben