Tile collisions

I am going to attempt to finish @kyleconroy 's branch, replacing our current collision detection with tile based.

So far I haven't made any changes I've just merged in master.

fixes #1884
fixes #1891