Shooting bullets - initial implementation

There is a bullet pool to avoid constant instantiation, and also
triggers in each bullet to detect collisions.