Major speed improvements in constructs + more options for alternate activity construct

* Use numpy functionality to speed up rescaling or normalizing operations that involve a vector
* Use scipy sparse matrices in cases of large sparse matrix multiplications (introduces new dependency, but saves a LOT of time)
* By default, exclude industries whose primary product is produced in smaller amount than their secondary product from the definition of alternate activity matrix in build_mr_Gamma().