Rewrite TNT

This adds an `enable_tnt` setting and optimizes explosions.
I replaced the damage and entity physics (pushing) code with my own, which some may like better or worse.  Some of this code is from [my nuke mod](https://github.com/ShadowNinja/nuke).
TNT now uses node timers instead of minetest.after, so actions still happen across restarts and block reloads.
I also added my own smoke texture, which is round instead of square.