Separate onHit from Obstacle component for reuse

This now, enemies don't 'step on' each other.