game: Fast alien-shield collision detection

Since the shields are in a regular array, compute which range of shield
grid coordinates are touched by the aliens.  Break those shields.  No need
to call make_shield() and do entity-to-entity collision checks.

The worst stats I could find with shield-alien collisions:

Average stats over last 100 loops:
- Collision checks: 96
- Movement calls: 63
- Loop time in ticks: 16
- Per-section game logic times: _ 2 _ _ _ _ 4 3
- Total game logic time in ticks: 10

A huge improvement over the past:
- Loop time in ticks: 32
- Per-section game logic times: _ 2 _ _ _ _ 21 3
- Total game logic time in ticks: 27
game: Set alien bottom limit using #defines

This allows for changes in screen and object size.