Fixing OtherToLocal() 1-frame-delay issue

This closes issue #163

The solution (for now at least) is to just mark the matrix as dirty
every time its needed. This isn't ideal but it shouldn't be a huge issue
and it should work fine.

The main reason this occured is because when a parent's position is
moved, it doesn't currently set the child's matrix as dirty
automatically, even though it really should (but there are some tricky
added complications with doing that).