Make Matrix4 abstract to fix compile issues on some platforms, update sample to use Matrix4