Improved range calculation efficiency

Moved the range calculation code from tower.paint_range to
tower.generate_range to avoid calculating it each frame because this was
creating noticeable lag.  Now the range is calculated once and stored in
two different surfaces, one that is drawn when the tower can be placed
and another when it can't.