Localized enemy spawns and difficulty scaling

Enemies now spawn purely within local range of player, and are destroyed
if they are too far from player, so we can have lots of enemies without
the lag of calculating movement for enemies on the other side of the
map. Also, basic maxEnemies and enemySpawnTimer increases accompanying
difficulty increases.