Major refactoring on the collision system

• Created a discriminated unions for bounding shapes
• Created a discriminated union for collision results
• Consolidated collision functions into one module