Change time-dependent values to float/double

Such as movement speed and position. Also add lots of casts to prevent
warnings and unexpected behaviour.
Fix boost mod
Refactored towers

Squashed commit of the following:

commit 23266c7e91304f27eb46f3d8072af71f5f4c171d
Author: Samuel Andersson <smulster@gmail.com>
Date:   Tue Feb 26 18:06:52 2013 +0100

    Added the last towers

commit 6b6b2d109d15c4f3e196ed0020b3542b9ab64c89
Author: Samuel Andersson <smulster@gmail.com>
Date:   Tue Feb 26 17:03:07 2013 +0100

    Make enemies go to center of tile.

    Apparently they were just visually moved 5 pixels into the tile, so towers
    ranging 1 square would lose target

commit 9726ea96eb45d689e740c2d7494e5c9011910020
Author: Samuel Andersson <smulster@gmail.com>
Date:   Tue Feb 26 01:02:24 2013 +0100

    WIP commit. Everything works.

    Just need to add the remaining towers

commit aa63d6b4a0f6698b205b5e0945f3a651268cb989
Author: Samuel Andersson <smulster@gmail.com>
Date:   Mon Feb 25 21:05:18 2013 +0100

    more wip. working compilation
Remove unneccessary variables

building_flag and snap_to_grid
Don't select placed tower by default
Pass Game pointer to all Sprite subclasses
Remove passing of spritelists to functions
Ambiguous enum comparison with int
return, break change
Add timer to get accurate delta between frames
Make towers, enemies and projectiles fps-indep
Fix sell value and updating infotext
Fix reloading time
Add global game speed modifier and fix boost bug
Display half sell value
Use game speed modifier for movement
Add timer to level control