Implement Matrix*Point3D

Where Point3D is an artitrary 3D point with members x(), y(), z().
Required some SFINAE to restrict some template operations.