As discussed on D44428 and PR36726, this patch splits off WriteVecMove, WriteVecLoad and WriteVecStore scheduler classes to permit vectors to be handled separately from gpr/scalar types.
I've minimised the diff here by only moving various basic SSE/AVX vector instructions across - we can fix the rest as its called for. This does fix the MOVDQA vs MOVAPS/MOVAPD discrepancies mentioned on D44428.