Floor refactor

This rewrites most floor code. Functionally, it's 95% the same. I'm mildly concerned about lag (because I made liberal use of ChangeTurf, which is considerably more expensive than just swapping icon_state and floor_tile). On the other hand, this should make floor code more maintainable and extensible, with a lot less snowflake. There are no pathing changes in this PR, which means that I wasn't able to remove some instances of snowflake involving standard floor tiles, but the code is still a lot cleaner than it was before.

(edited after second commit)
this block is the same as the fancy_update() for this level, just call fancy_update()