Clean up, document, and abstract collisions

Collisions code is now contained in a module, stored in the file
src/engine/Collisions.lua.