Implement ability to push minecarts on curved rails

This is my first real code contribution to an open source project. I'm grateful for any advice!
Unfortunately dividing by 10e-50 is about as bad as dividing by zero; you should just set `Distance.z = std::max(Distance.z, 0.0001);`