Cardiac tissue engineering: from matrix design to the engineering of bionic hearts