[SLP] Vectorize jumbled memory loads.
This patch tries to vectorize loads of consecutive memory accesses, accessed
in non-consecutive or jumbled way. An earlier attempt was made with patch D26905
which was reverted back due to some basic issue with representing the 'use mask'
This patch fixes the mask representation by recording the 'use mask' in the usertree entry.
Reviewed By: ayal
Differential Revision: https://reviews.llvm.org/D36130
Review comments updated accordingly
Added a TODO for sortLoadAccesses API
Modified the TODO for sortLoadAccesses API
Review comment update for using OpdNum to insert the mask in respective location
Fixes '-Wsign-compare warning' in LoopAccessAnalysis.cpp and code rebase