Update tower scripts for greater modularity.

Towers now have a public list of enemy types they are allowed to attack. Also fixes a bug which allowed towers to attack targets which had already moved out of their range.