Fast deploy over USB

This patch enables the fast deployment but only over USB. This implementation of the fast deployment doesn't support yet cross session capabilities.
This function has grown way too large, with something like 10 levels of indentation in some places. It would be good to refactor it into smaller chunks.