basically working elastic collision (assuming objects of equal mass!)

some bug where objects can get trapped inside each other.