Add trickle waves
Add basic trickle wave support
Better WaveData parsing
Differentiate trickle and burst waves.

Trickle: Continuous flow of enemies into level. Enemies can continue to
respawn after being destroyed.

Burst: Sudden burst of enemies into level during a short period of time.
Enemies will not respawn when destroyed.
Add wave spawn position randomization.

Burst seems ok, trickle needs work.
Need to add logic for avoiding spawn directly into black hole.
Burst wave particles, delayed start.

Burst waves can now play a particle effect slightly before and during the
spawning of enemies that will deactivate once it spawns all its enemies.

TODO:
Make the particle effect cooler.
Make the delay time a constant for all burst waves.
Add logic to avoid spawning into black hole.
Cooler spawn portal effect
Add logic to prevent spawn into blackhole.
Improve enemy spawning.

Two kinds of waves: burst and trickle.
Burst: Sudden inflow of enemies. When starttime is reached, a portal opens
at a random location and begins spewing forth enemies. Once all enemies in
the wave are spawned, the portal closes and enemies in that wave cannot
respawn. Burst waves spawn within the bounds of the level.
Trickle: Constant inflow of enemies. Enemies in these waves spawn at fixed
intervals and can respawn after being destroyed, but the total number of
enemies from one trickle wave cannot exceed the number of enemies defined
in that wave. Enemies in trickle waves spawn outside the level bounds and
quickly move into the level.

For either wave, the spawn location will not be set within a certain
distance of the black hole.
Improve collision calculations
Cleanup code