Matrix Calculus, Kronecker Product and Tensor Product - A Practical Approach to Linear Algebra, Multilinear Algebra and Tensor Calculus with Software Implementations