Add sparse triangular solver. Make A_ldiv_B a polyalgorithm, some reorganization and some tests.
Merge pull request #4985 from JuliaLang/anj/sparsesolve

RFC:Add sparse triangular solver
Introduced ArrayDist and SharedArray