Merge pull request #2217 from lambday/feature/linalg

Linear algebra unifying backend (WIP) - First draft
restructured linalg internal lib and renamed namespace impl to implementation