Matrix3.inverse memory pressure

`Matrix3.inverse` was creating a new temporary `Matrix3` instance every call; I've updated the code to just use the result parameter when provided.