If your body need to move and stop when colliding, a kinematicbody moved by
move could be what you want.
In the case of collision (check
move) change the movement direction (moved by translation wont report collision).
Look at the player on the kinematic character 3D demo (similar to 2D) to see how to work with
Oh, and the body will need to be parent of the mesh to move it too (unless you update mesh position in another way).
And do some tests first, it seems that KinematicBody has mixed up collision layers and masks (I think that currently only checks layers as masks).