Functions to compute matrix inversion and cache it. And retrieves if inverse already exist or calculates the inversion and sets it